我想使用pyppeteer
<button class="r3f3s" tabindex="0">Text here</button>
我正在尝试像建议的here使用Jquery
来做到这一点:
btn = await page.querySelector('button[text=\'Text here\']')
或此处:
btn = await page.querySelector('button:contains(text(), 'Text here'))
但是它似乎不起作用。我还注意到,在Jquery上在线发布的许多示例似乎都无法在Google chrome的控制台上运行,因此无法在pyppeteer
上运行。
我的问题是如何通过按钮的文本选择按钮,还有谁能将我引导到一个指南,该指南解释哪种Jquery选择器语法适合在Google chrome控制台(操纵up)上使用?因为this one似乎不正确,并且该错误实际上并不表示:
Uncaught DOMException: Failed to execute 'querySelector' on 'Document': is not a valid selector.
at <anonymous>:1:10
答案 0 :(得分:1)
CSS选择器包含当前不支持的文本,但是您可以使用Xpath
完全匹配文字
btn = await page.$x('//button[text()="Text here"]')
包含文字
btn = await page.$x('//button[contains(text(), "Text he")]')
演示:
答案 1 :(得分:0)
[]
是CSS属性选择器。 Square brackets in CSS
:contians()
是jQuery选择器。 https://api.jquery.com/contains-selector/
button元素没有text
属性。将会是textContent
。但实际上,它通常对我不起作用。我也不建议使用:contains()
,因为它会返回包含该文本的所有选择器。 (例如,“此处文字”,“此处文字”,“此处文字”,“此处文字”)。
当我想通过文本查找内容时,我使用.filter()
。 http://api.jquery.com/filter/
$('button').filter(function() { return this.textContent === 'Text here'; });
不熟悉pyppeteer
或该如何工作,但希望对您有所帮助。
答案 2 :(得分:0)
我遇到了类似的问题,并通过使用解决了它
await page.waitForSelector(selector)