Watir webdriver_unable单击弹出窗口上的取消目标按钮

时间:2013-11-20 17:12:37

标签: webdriver watir

我是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">&times;</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>

非常感谢任何帮助。谢谢!

2 个答案:

答案 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