capybara - 似乎无法使用 SitePrism 的 element.visible?如果元素不存在

标签 capybara site-prism

我有以下代码:

element :header_upgrade_subscription, :xpath, "//a[text()='Upgrade subscription']"
element :header_change_subscription, :xpath, "//a[text()='Change subscription']"

if header_upgrade_subscription.visible?
  change_subscription = header_upgrade_subscription 
else
  change_subscription = header_change_subscription 
end

问题是如果 header_upgrade_subscription 不存在,它就会失败:

Capybara::ElementNotFound Exception: Unable to find xpath "//a[text()='Upgrade subscription']"

我知道在 capybara 中,您可以:

(rdb:1) first(:xpath, "//a[text()='Upgrade subscription']")
nil

如果不存在则返回nil。我将如何对 SitePrism 元素使用“第一”方法?这是我得到的:

(rdb:1) first(header_upgrade_subscription)
Capybara::ElementNotFound Exception: Unable to find xpath "//a[text()='Upgrade subscription']"

我喜欢使用“first”方法,因为如果元素不存在,它没有等待时间。

感谢您的帮助!

最佳答案

if has_header_upgrade_subscription? && header_upgrade_subscription.visible?

关于capybara - 似乎无法使用 SitePrism 的 element.visible?如果元素不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294549/

相关文章:

ruby - 想在多个场景的 Cucumber 特性文件中只执行一次 Background

ruby - 如何使用 Cucumber Ruby Automation 打印浏览器控制台日志?

ruby-on-rails - capybara 通过数据属性找到 anchor 元素

ruby-on-rails - travis ci 和 selenium-webdriver 无法在 60 秒内获得稳定的 firefox 连接 (127.0.0.1 :7055)

ruby-on-rails - 将 RSpec 的 `all` 匹配器与 Capybara 的 `have_css` 匹配器一起使用时出错

ruby - 您可以通过 site-prism 或仅通过 css 选择器按 id、标题、链接等查找元素吗?

javascript - RSpec:是否有设置让 js:所有规范都为真?

ruby-on-rails-3 - rails rspec http 基本认证测试

ruby-on-rails - 如何正确配置rails测试以在浏览器中运行它? ( site_prism、 cucumber 、 capybara 、selenium webdriver )

ruby - 如何使用带有路径的可选变量的 URI 模板