Ruby Capybara Element not found 错误处理

标签 ruby capybara

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/

相关文章:

ruby-on-rails - 导致未定义方法错误的可选参数

javascript - 使用 React 获取 Rails 关联对象

ruby-on-rails - 如何解决RSpec关于新的Expect语法的弃用警告?

ruby-on-rails - #<RSpec::ExampleGroups::TheSigninProcess:0x007fddd28a7750> 的未定义方法 `expect'

ruby-on-rails - 从带有夹具工厂的 Rails 环境运行 JS 测试套件,或用于前端的 API 以请求在后端加载某些夹具

ruby - 使用 headless Chrome 将 URL 列入黑名单

Ruby Koans 关于消息传递 "send" block 和参数

ruby - rspec 进行输出测试

ruby-on-rails - 您如何跟踪 View 的页面浏览量

capybara - 如何在 Capybara 步骤中包含 Rails View 助手