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 不可用。如何继续访问下一个网址而不是抛出错误并停止程序?谢谢。
最佳答案
首先,停止使用这样的 xpath - 它们将变得极其脆弱且难以阅读。如果没有看到 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
关于Ruby Capybara Element not found 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62400736/