如何使用Ruby Capybara单击此按钮?

时间:2017-02-03 16:50:07

标签: ruby google-chrome capybara

我试图点击按钮,但我收到以下错误:

  

无法找到链接或按钮"我的任务" (水豚:: 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的新手,有人可以帮我吗?

1 个答案:

答案 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