如何检查链接的存在然后点击它?我尝试了以下方法:
assert_select "a", "show/hide comments"
click_link('show/hide comments')
我正在使用minitest,capybara和'minitest-rails-capybara'宝石。我在集成测试中添加了以下include语句:
include Capybara::DSL
include Capybara::Assertions
我收到以下错误:
Unused parameters passed to Capybara::Queries::SelectorQuery : ["show/hide comments"]
MethodError: NoMethodError: undefined method `failure_message' for Capybara::Helpers:Module
test/integration/user_flow_test.rb:215:in `block in <class:UserFlowTest>'
我可以同时使用minitest的断言链接和capybara的click_link吗?
由于
答案 0 :(得分:1)
首先,在点击之前不需要断言元素的存在,因为click_link
将等待Capybara.default_max_wait_time秒,链接显示在页面上然后单击它。如果该链接在该时间内没有出现,则会引发错误,因此对其存在进行断言是多余的。
你得到的错误是因为minitest-capybara与Capybara 2.9+兼容 - https://github.com/wojtekmach/minitest-capybara/pull/17 - 以及assert_select
没有2个字符串的事实作为参数。它只需要选择元素的id,name或label文本。所以我猜这并不是你打算打电话的方法。
答案 1 :(得分:0)
要弄清以前的答案:
错误:
assert_select "a", "show/hide comments"
正确:
assert_select "a", text: "show/hide comments"