selenium 多窗口切换的实现(windows)
在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作。。WebDriver提供了switchTo().window()方法可以实现在不同的窗口之间切换。
以下代码是以新浪网为实例。通过获取句柄切换到指定窗口,并关闭窗口。当然切换到指定窗口,也可以通过元素定位等方法对元素进行操作。
getWindowHandle():获得当前窗口句柄。
getWindowHandles():返回的所有窗口的句柄到当前会话。
switchTo().window():用于切换到相应的窗口,与上一节的switchTo().frame()类似,前者用于不同窗口的切换,后者用于不同表单之间的切换。
publicstaticvoidmain(String[]args)throwsInterruptedException{
System.setProperty("webdriver.chrome.driver","D:/chromedriver_win32/chromedriver.exe");
ChromeOptionsOptions=newChromeOptions();
Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\UserData");
WebDriverdriver=newChromeDriver(Options);
driver.manage().window().maximize();
//窗口最大化
driver.get("http://www.sina.com.cn/");
driver.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
//设置元素等待时间,隐式等待
StringsreachHand=driver.getWindowHandle();
//获取当前窗口的句柄
driver.findElement(By.linkText("体育")).click();
//打开新浪官网上的体育链接
driver.findElement(By.linkText("娱乐")).click();
//打开新浪官网上的娱乐链接
java.util.SetHandles=driver.getWindowHandles();
System.out.println(Handles.size()+"集合长度");
//获取所有窗口的句柄并将句柄放在Set集合中。
//以下判断是否是新浪网首页,如果是则关闭新浪网首页。
for(Stringi:Handles){
if(i.equals(sreachHand)){
driver.switchTo().window(i);
Thread.sleep(5000);
driver.close();
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。