使用 Puppeteer 时等待文本出现

新手上路,请多包涵

我想知道是否有与 Selenium 类似的方式来等待特定元素的文本出现。我试过这样的事情,但它似乎没有等待:

 await page.waitForSelector('.count', {visible: true});

原文由 elena 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

除了 nilobarp 的答案中介绍的方法外,还有两种方法可以做到这一点:

page.waitForSelector

使用伪选择器 :empty 可以找到不包含子节点或文本的元素。将其与 :not 选择器结合,我们可以使用 page.waitForSelector 来查询非空的选择器:

 await page.waitForSelector('.count:not(:empty)');


XPath 表达式

如果您不仅要确保该元素不为空,而且要检查它包含的文本,您可以使用 page.waitForXPath XPath 表达式:

 await page.waitForXPath("//*[@class='count' and contains(., 'Expected text')]");

只有在页面上有一个元素具有属性 class="count" 并包含文本 Expected text 之后,该行才会解析。

原文由 Thomas Dondorf 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题