【发布时间】:2012-04-19 11:06:17
【问题描述】:
伙计们,
我遇到了一个有趣的问题。我在网页上有一些 javascript,单击它会打开一个弹出窗口。我试图找到窗口的标题以便我可以点击它,窗口有以下两个按钮“取消”和“保存文件”。这是我在我的 ruby 代码中所做的:
@windows = @browser.windows #this should return an array, so @windows is an array
p @windows[1] #output of this is #<Watir::Window:0x115c796cc located=true>
puts "This is the title of the second window---->"+@windows[1].title #this puts blank
我看到的问题是为什么当我使用p @windows[1] 打印出我的 windows 对象时没有任何变量,以及为什么在我使用@windows[1].title 时没有打印出标题。我的目标是点击弹出窗口的“下载文件”按钮
这是我拥有的一段 HTML:
<td>
<a onclick="window.open(this.href);return false;" href="/search/searches/1563/exports/1017">6175-1017-20120418181521-karnire.eml.zip</a>
</td>
我尝试的另一件事是在我的代码中做这样的事情:
@windows = @browser.windows
@browser.window(:title => @windows[1].title).use do
@browser.button(:value => "Save File").click
end
对于上述情况,我收到如下错误:
Unable to locate window "{639686d9-4641-aa41-bf6f-3ba89659d921}" (Selenium::WebDriver::Error::NoSuchWindowError)
【问题讨论】:
-
你能告诉我们导致窗口出现的 HTML 吗?这可能不是一个新的浏览器窗口,而是一个模态 javascript“确认”框吗?
-
@ChuckvanderLinden 这是 HTML
<td> <a onclick="window.open(this.href);return false;" href="/report/reports/1563/reports/1017">6333-33317-20134745748181521-dfrgrgr.fml.zip</a> </td> -
你知道你应该能够自己编辑你的问题并把 HTML 放在那里(甚至格式化得很好)..
-
看起来它只是打开一个直接指向要下载的文件的新窗口。我认为这意味着您看到的对话框来自浏览器本身,并且可能是标准的下载确认您验证文件内容对您的测试是否重要?还是知道文件名本身是否正确?
-
@ChuckvanderLinden 我在上面添加了更多详细信息。验证文件的内容对我来说很重要,我已经编写并测试了代码来验证文件的内容是否正确。
标签: ruby-on-rails ruby watir watir-webdriver