ruby - Ruby Capybara Element not found 错误处理
问题描述
internet.find(:xpath, '/html/body/div[1]/div[10]/div[2]/div[2]/div[1]/div[1]/div[1]/div[ 5]/div/div[2]/a').text
我正在循环浏览一系列页面,有时这个 xpath 将不可用。如何继续下一个 url 而不是抛出错误并停止程序?谢谢。
解决方案
首先,停止使用这样的 xpath——它们将变得非常脆弱且难以阅读。在没有看到 HTML 的情况下,我无法为您提供更好的 HTML - 但至少在某种程度上必须有一个id
您可以定位的元素。
接下来,您可以捕获返回的异常find
并忽略它,或者更好的是,您可以先检查页面是否具有该元素
if internet.has_xpath?(...)
internet.find(:xpath, ...).text
...
else
... whatever you want to do when it's not on the page
end
推荐阅读
- microsoft-graph-api - Microsoft Graph API 是否支持 Outlook 消息订阅/通知的增量链接?
- c++ - 错误:指定的可执行文件不是此操作系统平台的有效应用程序。行:1 字符:1
- c++ - 按 control+Z 后有没有办法继续输入?
- machine-learning - 在 LSTM 中,什么情况下一个内存块应该有多个内存单元?
- django - 当我尝试在 django 中更新多个图像时出现错误
- mysql - 尝试访问实时数据库中的某些表时出现错误 1146
- reactjs - react-query 在 nextjs 中重新获取页面更改的数据
- python - 我的 cookie-navbar 组合不起作用,即使我没有收到错误
- matlab - 大型 STL 体素化
- python - Angular 客户端和后端 python - socket io