【发布时间】:2012-11-11 02:15:18
【问题描述】:
我正在使用 Ruby 和 Watir,尝试在填写表单后自动化页面以单击提交按钮。
这是按钮的 HTML 代码。
<div class="btns_wr">
<span class="small_green_btn input" title="Submit">
<span class="link_left"></span>
<span class="link_middle">
<input id="submitEnrollmentCmdButtonId" type="submit" value="SUBMIT" name="submitEnrollmentCmdButtonId">
</span>
<span class="link_right"></span>
</span>
</div>
我尝试了类、文本、标题等的多种变体,但如果我不填写表单字段,它会单击按钮,但是当我填写表单字段时,它不会单击按钮,但会出现错误下一步当然是因为预期的结果是错误的。
我尝试了以下方法:
browser.span(:class => 'link_middle').button(:id => 'submitEnrollmentCmdButtonId').click
browser.span(:class => 'link_middle').button(:title => 'Submit').click
有了这个,至少我得到了一个错误信息:
无法定位元素,使用 {:tag_name=>"button", :id=>"submitEnrollmentCmdButtonId"}
browser.span(:class => 'link_middle').span(:title => 'Submit').click
无法定位元素,使用 {:tag_name=>"span", :title => "Submit"}
我正在使用火狐;在我单击页面上的按钮后,此表单页面也会打开,并且会打开这个新的浏览器窗口。
【问题讨论】:
-
除非 Ruby 允许,否则您无法自动执行点击事件,原因很明显。
-
如果表单在新打开的浏览器中,使用前需要显式切换。在您的示例中,
browser是主浏览器还是新打开的浏览器?