问题:无法点击名为“BT_SEARCH”
的元素<tr>
<td ...>
<input type="submit" name="BT_SEARCH" value="Hae" onclick="document.forms['DForm'].elements['LPAGE'].value=1">
</td>
</tr>
点击'Hae'返回:未定义方法`click'for #Object:...
click_button'Hae'返回:无法找到“Hae”按钮...
click_link'Hae'返回:无法找到链接“Hae”...
find(:xpath,“// input [@ name ='BT_SEARCH']”)。点击似乎找不到元素。
我无法修改源代码,并且没有可用的ID或类标签。此外,该页面使用ASP,我认为这是导致问题。
答案 0 :(得分:0)
您可以尝试下面提到的方法来点击元素:
find("input[name=\"BT_SEARCH\"]").click
page.execute_script("$('input[name=\"BT_SEARCH\"]').trigger('click')")
希望这有助于:)
答案 1 :(得分:0)
继续尝试 -
#click
仅适用于从查找返回的元素,因此调用它不会在元素上运行
#click_button
点击按钮元素和输入元素,类型为提交,重置,图片或按钮。它会匹配所有那些反对id或值的东西 - 所以给你的例子这应该有效
#click_link
点击链接 - 输入元素不是链接,因此应该失败
假设xpath匹配元素(它似乎要做),这应该有效
因此,如果页面符合指定,那么您的尝试#2和#4都应该有效。你没有给出你为#4得到的确切错误,但是因为#2给你一个“无法找到...”错误我假设#4也做了。在这种情况下,有两种可能的可能性 - 1.元素实际上不在页面上 - 如果元素应该由JS添加到页面中,请确保没有阻止添加元素的JS错误。 2.该元素在页面上不可见 - 在尝试单击之前执行任何必要的用户操作以使输入可见
答案 2 :(得分:0)
问题是该元素位于iframe内。
within_frame 解决了这个问题:
within_frame (frame_id) do
click "Hae"
end
令人困惑的是,点击可以找到没有 within_frame 的元素(但它无法点击),而 click_on 或查找不能。