我试图点击按钮,但我收到以下错误:
无法找到链接或按钮"我的任务" (水豚:: ElementNotFound)
这是我在Chrome上检查时得到的结果:
<a class="btn btn-lg btn-success" href="/tasks" role="button">My Tasks</a>
这是我的代码(我的steps.rb):
# go to my tasks page
def visitTasksPage
page.has_content?('Signed in succesfully') do
clicK_link 'My Tasks'
end
self
end
我是Ruby Capybara的新手,有人可以帮我吗?
答案 0 :(得分:1)
问题可能在于它确实是您尝试点击的链接(<a href="/some-link">Some Text</a>
标记)而不是按钮(<button type="button">Some text</button>
标记)。为避免出现此问题,建议您使用以下method:
click_on('My Tasks') # clicks on either links or buttons
或者可能是在Capybara超时之前,页面上没有显示链接或按钮。 Capybara默认在超时之前等待2秒,但你可以用
扩展它Capybara.default_max_wait_time = 9
调试此问题可以做的另一件事是在点击链接/按钮之前添加对binding.pry
的调用,并检查按钮是否确实存在您希望它具有的文本:
page.has_content?('Signed in succesfully') do
binding.pry # at this point you can test if the link is really there with page.has_content?('My Tasks')
click_link 'My Tasks'
end
请注意,您需要install pry将其添加到Gemfile或gem install pry
。