2

伙计们,

我有一个有趣的问题。我在网页上有一些 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

我看到的问题是为什么我的 windows 对象在我打印出来时没有任何变量,p @windows[1]还有为什么我打印时没有打印标题@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)
4

2 回答 2

2

我将从watir-webdriver 博客上提供的信息开始

如果这不起作用,请尝试查看有关文件下载的 watir-wiki 页面

它有点过时(一年内没有更新,也使用 autoit 而不是 rautomation)但它可能足以让你继续前进。

于 2012-04-18T18:59:56.610 回答
0

Watir 可能没有等待窗口加载。尝试在单击后放置一个 sleep(10) 。

于 2012-04-19T03:06:17.030 回答