2012-12-12 24 views
0

我对我的自动化脚本使用了selenium webdriver + java + eclipse + testng。使用硒webdriver无法获取包含警告框的窗口的URL

我想获取包含警告框的窗口的URL。 单击网页上的下载按钮后,它将在新窗口中打开一个警告框。我想获取这个窗口的URL。

我试过这个getCurrentURL命令,但我得到UnhandledAlertException:模态对话框存在。如果我忽略警告框,则包含的窗口会立即关闭,因此无法获取该URL。

看来警告框(模态对话框在这里)阻止了读取窗口URL的webdriver。 请为我提供一个解决方案。

感谢

+0

什么是警报框?它是一个窗口框? –

+0

我不知道确切的解决方案,但我可以建议你解决这个问题。希望能帮助到你。 使用getPageSource()方法获取下载按钮存在的页面的页面源,并且您可以找到附加到下载按钮属性(id或name或xpath)的链接。 – Hemanth

+0

点击下载按钮后,它打开新的弹出窗口? 你想弹出窗口URL吗? 什么警报来了?你不能处理那个警报吗? – Santoshsarma

回答

0

我不知道我理解的问题,作为一个警告框,没有任何网址!

总之,你可以访问它是这样的:Alert alert = webDriver.switchTo().alert(); 然后你可以retrive文本内容或与之互动,在这里描述:http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/Alert.html

+0

警告框是弹出的文件,其中包含保存,打开和取消选项。这个弹出窗口在一个新的浏览器窗口中打开,窗口中有一个包含正在下载的文件的一些信息的URL。 – megha

+0

@HemChe我试过getPageSource(),但得到相同的异常莫代尔对话框存在。 – megha

+0

我能够通过使用accept()和dismiss()命令来处理警报,但这样做时警报会随着包含警报的窗口关闭。所以URL再次丢失。该URL存在于窗口的地址栏中,不在警告框中。 – megha

0

我认为你需要首先得到一套windowHandles的这个driver.getWindowHandles(); 。然后迭代它们,获得新打开的窗口的所需句柄。之后,您可以切换到打开的窗口使用driver.switchTo().window("pass the handle here");

现在控制进入新窗口。然后使用像driver.getCurrentUrl();

希望这可以帮助你。最好的问候:)

相关问题