我想知道如何单击水豚中的输入。
到目前为止,我已经尝试过
click_on('#js-emu-submit.button.pl3.pr3.mb0.mr1')
click('js-emu-submit')
find('input', exact_text: 'Get an Estimate', match: :first).click
他们都没有工作
这是网页中的HTML。
<input type="submit" name="commit" value="Get an Estimate" id="js-emu-submit" class="button pl3 pr3 mb0 mr1" data-disable-with="Get an Estimate">
我只是想知道如何单击该项目。
答案 0 :(得分:0)
查看click_on
-https://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#click_link_or_button-instance_method的文档-您会发现它是click_button
和click_link
的组合,并说要检查每个文档的类型接受的定位器。查看click_button
,https://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#click_button-instance_method,您会发现它会找到any <input> element of type submit, reset, image, button
(您的HTML元素是),并且定位符可以是id, Capybara.test_id attribute, value, or title
中的任何一个。 CSS选择器不是其中之一,因此可以说明您的click_on
尝试失败的原因。假设您的元素在页面上可见,那么下列任何一项都应单击它
click_on 'js-emu-submit' # match on id
click_button 'js-emu-submit' # id
click_button 'Get an Estimate' # match on value - should work with `click_on` too
另一种选择是仅在位于另一种方式的元素上使用click
。 click
不使用定位符-https://www.rubydoc.info/gems/capybara/Capybara/Node/Element#click-instance_method-从而说明了您第二次尝试不起作用的原因,并且input元素内没有子文本,从而解释了您第三次尝试不起作用的原因不行可以使用click
使用的东西是
find('#js-emu-submit').click # find element by CSS id selector and click it
find(:button, 'js-emu-submit').click # find by id using the :button selector
find('input[value="Get an Estimate"]').click # find by CSS attribute selector
...