javascript - Puppeteer - 检查特定文本是否存在
问题描述
我正在使用 puppeteer 检查网页上出现的特定文本。我要检查的代码如下:
if ((await page.waitForXPath('//span[contains(text(), "Subscription Confirmed")]',30000)) !== null) {
chk = await page.evaluate(el => el.innerText, await page.$x('//span[contains(text(), "Subscription Confirmed")]'))
chk = 'Success'
} else {
// do something else
chk = 'Failed'
}
由于某种原因,这似乎没有检测到文本。我附上了网页 DOM 的屏幕截图,您可以在其中看到文本 - DOM。希望有人能帮忙。
解决方案
尝试以下操作:
if ((await page.waitForXPath('//*[contains(text(), "Subscription Confirmed")]',30000)) !== null) {
chk = await page.evaluate(el => el.innerText, await page.$x('//*[contains(text(), "Subscription Confirmed")]'))
chk = 'Success'
} else {
chk = 'Failed'
}
推荐阅读
- php - PHP 7.3 函数 create_function() 从 5.6 更新中弃用
- windows - Oracle Universal Installer 在启动后停止(Oracle Forms and Reports 12.2.1.4)
- scala - scala中的正则表达式从数据框列中的字符串中删除子字符串
- swift - 有没有办法管理远程通知的持续时间以在横幅上显示更长的时间?
- windows - HKEY_CLASSES_ROOT\Directory\Background\shell 的问题
- python - 如何将数据从 Django 模板传递到视图
- javascript - 如何将持久数据保存在函数中?
- pyspark - 将 Spark Sql 数据帧作为 parquet/csv 写入磁盘
- r - 如果存在,则将数据框中的列的结构转换为字符,否则不要担心
- java - ClassNotFoundException: org.apache.hadoop.conf.Configuration 启动 Flink SQL 客户端