javascript - waitForXPath 一个 utf-8 字符串返回超时
问题描述
我有一些代码可以转到特定页面并验证该页面是否有字符串。大多数情况下,该字符串是“GNRE - Web Service”,但有时我会得到“Não há dados”(pt-BR)。因此,下面的代码返回超时。有人知道如何正确检查这一点,或者是否有类似 ut8_encode() 的事情要做?我知道代码有效,因为当字符串为“GNRE - Web Service”时它可以正确运行。
代码:
await page.waitForXPath("//*[contains(., 'GNRE - Web Service') or contains(., 'Não há dados')]");
错误:
TimeoutError: waiting for XPath `//*[contains(., 'GNRE - Web Service') or contains(., 'Não há dados')]` failed: timeout 30000ms exceeded
解决方案
您可以使用Promise.race或Promise.any,如果找到任何一个文本,它们都会解决。
await Promise.race([
page.waitForXPath("//*[contains(., 'GNRE - Web Service')]"),
page.waitForXPath("//*[contains(., 'Não há dados')]")
])
推荐阅读
- docker - 谷歌云计算实例更新
- reactjs - 在 ReactJS 中提交具有多个提交按钮的表单
- php - Docker:MySQL容器绑定主机mysqld套接字
- html - 如何在 Python 中使用 Beautiful soup 在特定列中查找特定文本
- postgresql - postgres AWS RDS - 无法创建复制用户
- python - 如何解决 UserWarning:使用与输入大小 (torch.Size([1])) 不同的目标大小 (torch.Size([]))?
- http - 将请求代理到前端服务时使用 nginx 什么协议?
- sequence-diagram - PlantUml 序列图转状态图
- reactjs - node.js - 如何将 ReactJS 应用程序上传到 nexus repo
- java - 如何挑选奇数并将奇数相乘