2017-09-08 17 views
3

私はリンクのリストを持っていて、リンクの名前に基づいてそれらのいずれかにclickしたいです。私はセレクタでこれを達成できません。`innerText`に基づいてElementHandleを取得する方法は?

page.$evalのようなものを使用して、その項目のElementHandleを取得してから、それをタップ/クリックするとよいでしょう。

他のアプローチは、x/y座標を$evalにして、手動で場所をクリックすることです。面倒だと思う。

私はこれをガイドラインごとに掲載しましたが、LMKをPRしなければならない場合はLMKです。

答えて

0

page.$$(selector)を使用してすべてのターゲットエフェクトを取得した後、page.evaluate()を使用してlinkNameを取得したことがありますか?以下のような

何か:

const targetLinks = await page.$$('yourLinkSelector'); 
for(let link of targetLinks){ 
    const linkName = await page.evaluate(el => el.innerHTML, link); 
    if (linkName === 'myFancyLinkToClick') { 
    await link.click(); 
    // break if only 1 link click is needed. 
    break; 
    } 
} 

はそれがあなたのために働く願っています。

関連する問題