使用watir-webdriver单击文件下载弹出窗口中的按钮

时间:2012-04-18 17:32:33

标签: ruby-on-rails ruby watir watir-webdriver

民间,

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

2 个答案:

答案 0 :(得分:2)

我从提供的信息开始here on the watir-webdriver blog

如果不起作用,请尝试查看watir-wiki page on file downloads

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

答案 1 :(得分:0)

可能是Watir没有等待窗口加载。点击后尝试进入睡眠状态(10)。