我是Watir的新手,试图测试一个弹出窗口,我无法让我的脚本单击取消目标按钮。运行脚本时,出现错误:element not visible (Selenium::WebDriver::Error::ElementNotVisibleError
。这是我正在使用的脚本:
browser.div(:class => "modal-footer").button(:class => "btn btn-danger").click
以下是代码:
<div class="modal hide fade" id="target_modal" data-bind="with: target">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 data-bind="text: BusinessName"></h3>
</div>
<div class="modal-body">
<div class="row">
<div class="span3">
<label for="FirstName">First Name</label><input id="FirstName" type="text" data-bind="value:FirstName" />
<label for="LastName">Last Name</label><input id="LastName" type="text" data-bind="value: LastName" />
<label for="Email">Email</label><input id="Email" type="text" data-bind="value: Email" />
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-bind="click: saveTarget">
<i class="icon-white icon-ok"></i>
Save Target
</button>
<button class="btn btn-danger" data-dismiss="modal">
<i class="icon-white icon-remove"></i>
Cancel Target
</button>
</div>
</div>
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
我认为这个弹出窗口是页面的一部分(即只是覆盖页面其余部分的div标签),而不是新的浏览器窗口弹出窗口。
我的猜测是Watir试图在弹出窗口显示之前单击按钮。明确告诉Watir等待按钮可以解决问题:
cancel_button = browser.div(:class => "modal-footer").button(:class => "btn btn-danger")
cancel_button.when_present.click
答案 1 :(得分:0)
我得到了它的工作。贾斯汀柯的第一个答案让我思考,这很有效:
cancel = browser.div(:id => "target_modal")
cancel.div(:class => "modal-footer").button(:class => "btn btn-danger").i(:class => "icon-white icon-remove").click