【发布时间】:2017-07-12 14:50:29
【问题描述】:
我正在测试这个页面,我必须填写一个表格,并且只有当所有字段都填写并有效时,才能点击按钮,但是,当试图找到要点击的按钮时,我总是收到水豚的消息无法找到按钮或元素,或者我尝试找到它。 该按钮没有名称或 ID,这使其更难。
screenshot of the part of the code while inspecting element
<button class="btn btn--highlight _159vaYHuibqRdI3OZTALCW">
<!-- react-text: 182 -->
Jetzt kaufen
<!-- /react-text -->
<!-- react-text: 183 --> — <!-- /react-text -->
<!-- react-text: 184 -->
94,01 €
<!-- /react-text -->
<span class="spinner">
</span></button>
当浏览器的大小改变时,按钮文本会改变,但是默认大小的按钮文本是“Jetzt bestellen”,当更大时“Jetzt kaufen” 我已经尝试点击此按钮的方式:
@browser.click_button('Jetzt bestellen', 等待:10)
@browser.within ".btn btn--highlight" 做 @browser.click_on "Jetzt bestellen" 结束
@browser.find_button('Jetzt bestellen', 等待:10).click
@browser.find(:xpath, '//button[text()="Jetzt bestellen"]', 等待:10).click
【问题讨论】:
-
您是否将
Capybara.exact设置为true?如果不是,按钮是否在当前范围之外(即您是否在不包含按钮的 inside 块内)。注意:click_button被实现为find_button(args...).click,因此您的第三次尝试与第一次没有什么不同也就不足为奇了。您的第四次尝试不起作用,因为按钮的内容不仅仅是“Jetzt bestellen”。请在您的问题中添加您收到的确切错误消息。 -
gist.github.com/twalpole/14cd6c69c91b3d54cf2bd994375a019b 是一个要点,将您显示的 html 放入文档中,然后显示水豚找到点击它。当您的测试运行时,您确定文本是“Jetzt bestellen”吗?而不是您在 html 中显示的“Jetzt kaufen”?你可以试试
click_button('Jetzt')看看是否通过。