使用Puppeteer 點擊帶有文字的元素
挑戰:僅根據文字定位並點擊元素
考慮以下HTML 片段:
<code class="html"><div class="elements"> <button>Button text</button> <a href="#">Href text</a> <div>Div text</div> </div></code>
目標: 在包含「按鈕文字」的按鈕元素上實現按一下動作。
解決方案:
下面的XPath 表達式標識包含所需文字的按鈕:
"//button[contains(., 'Button text')]"
但是,為了確保與周圍的
"//div[@class='elements']/button[contains(., 'Button text')]"
執行點擊操作:
const [button] = await page.$x("//div[@class='elements']/button[contains(., 'Button text')]");
if (button) {
await button.click();
}
說明:
使用.contains(. , 'Text') 而不是.contains(text(), 'Text') XPath 表達式確保它包含子節點,因此不會排除元素結構中更深層的文字節點。
以上是如何使用 Puppeteer 根據文字內容點擊元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!