我是Watir的新手,这是我的第一个任务。我已经完成了一系列的自动化,但是我不得不点击模式弹出窗口上的文件上传按钮。所以基本上我点击了一个html链接,上面写着恢复
<a id="restore-link" class="open-modal" href="profiles/restore_form">
Restore Profile
</a>
这样可以打开一个模态弹出窗口,其代码附在下面。我需要单击文件上传并设置路径,然后在模态窗口中单击还原。任何提示或建议?打开的模态窗口的代码如下所示。
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span id="ui-dialog-title-modal" class="ui-dialog-title"> </span>
<a role="button" class="ui-dialog-titlebar-close ui-corner-all" href="#">
<span class="ui-icon ui-icon-closethick">close</span>
</a>
</div>
<div scrollleft="0" scrolltop="0" style="width: auto; min-height: 50px; height: auto;" id="modal" class="ui-dialog-content ui-widget-content">
<form id="restore-profile-form" action="profiles/restore" enctype="multipart/form-data" method="POST">
<fieldset>
<div class="form-head">
<h2>Restore Profile</h2>
</div>
<div class="form-body">
<div class="form-field">
<label for="name">Backup <em class="mandatory">*</em></label>
<input id="backup" name="backup" type="file">
</div>
</div>
<div class="form-foot">
<input value="Restore" id="restore-profile-submit" type="submit">
<a href="#" onclick="return closeModalWindow()" id="restore-profile-cancel">Cancel</a>
</div>
</fieldset>
</form>
</div>
感谢。
答案 0 :(得分:2)
这样的事情应该有效
browser.a(:id => 'restore-link').click
browser.window(:index => 1).use # switch to new modal window
browser.file_field(:id => 'backup').set file_path
browser.button(:id => 'restore-profile-submit').click
browser.window(:index => 0).use # switch back
答案 1 :(得分:0)
这对于watir和watir-webdriver是不同的 使用watir,您可以通过
访问模式对话框 modal = browser.modal_dialog
一旦你有了模态对话框,你可以做任何你通常用浏览器做的事情
modal.file_field(:id => 'backup').set(file_path)
modal.button(:id => 'restore-profile-submit').click
或
modal.link(:text => 'Cancel').click
使用webdriver p0deje的评论应该可以解决问题。
答案 2 :(得分:0)
我试图将此作为评论但不能。
我命令我的测试操纵弹出模式,我不得不改变
browser.a(:id => 'restore-link').click
到
browser.a(:id => 'restore-link').click_no_wait
然后我能够验证正确的弹出模式被称为
browser.alert.text.include?("Invalid URL")
并承认
browser.alert.ok
找到有关“提醒”方法的信息