use*_*183 5 ruby tdd bdd rspec capybara
我正在使用 Capybara 2.4.4 单击链接。html是这样的:
<a name="skiplink" id="skiplink" type="button" href="javascript:void(0);" onclick="skipForm(); return false;">salta</a>
Run Code Online (Sandbox Code Playgroud)
水豚命令:
find("a", :text => "salta").click
find('skiplink').click
Run Code Online (Sandbox Code Playgroud)
两者都不起作用:
Failure/Error: find("a", :text => "salta").click
NoMethodError:
undefined method `empty?' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
我已经从save_and_open_page输出中复制粘贴了 html,所以它可能是正确的
我正在使用默认驱动程序(无硒)
谢谢
以下任何一项都应该有效
click_on('salta')
find(:css, '#skiplink').click # the :css is only necessary if you've changed capybaras default selector
Run Code Online (Sandbox Code Playgroud)
您的 find("a", :text => "salta").click 也应该可以工作——但是当使用 capybaras 默认驱动程序(racktest)时,点击 javascript 链接将不起作用,因为驱动程序不支持 javascript。您需要切换到支持 javascript 的其他驱动程序(selenium、capybara-webkit、poltegeist 等)