ari*_*rin 3 javascript java selenium webdriver
目前,我工作的应用程序有许多工作流程,一个接一个地打开新窗口.我使用以下方法将焦点切换到新窗口:
for (String popUpHandle : driver.getWindowHandles()) {
driver.switchTo().window(popUpHandle);
if(driver.getCurrentUrl().equalsIgnoreCase(URL of the new window)
...
}
Run Code Online (Sandbox Code Playgroud)
同样的方式,我用它与页面标题.使用selenium.isElementPresent存在以获取条件并在新窗口中执行某些操作.
以上三种解决方案工作正常,但在IE中占用太多时间,在一个工作流程中,2-3个窗口仍然隐藏.
在我们点击某个链接或按钮后立即打开焦点新窗口的任何指导,将非常感谢.
加快一点速度的一个技巧是始终忽略父窗口.所以做以下事情:
//before any pop ups are open
String parentHandle = driver.getWindowHandle();
//after you have pop ups
for (String popUpHandle : driver.getWindowHandles()) {
if(!popUpHandle.equals(parentHandle)){
driver.switchTo().window(popUpHandle);
if(driver.getCurrentUrl().equalsIgnoreCase(URL of the new window)){
//do something here
}
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以通过这种方式切换到最近打开的窗口,因为应该订购该集合(*我认为,目前无法访问Selenium设置以进行测试*):
String newWindowHandle = driver.getWindowHandles()[driver.getWindowHandles().length - 1];
driver.switchTo().window(newWindowHandle);
Run Code Online (Sandbox Code Playgroud)
最后,不确定您使用的是哪种版本的Selenium,但最新的IED驱动程序要快得多:http: //code.google.com/p/selenium/wiki/InternetExplorerDriver
| 归档时间: |
|
| 查看次数: |
4981 次 |
| 最近记录: |