Java Selenium实现多窗口切换的示例代码

这篇文章主要介绍了Java Selenium实现多窗口切换的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,就需要主机切换到新窗口进行操作。WebDriver 提供了switchTo().window()方法可以实现在不同的窗口之间切换。

获取当前窗口浏览器句柄:driver.getwindowHandle();

获取所有窗口的浏览器句柄到当前会话:driver.getwindowHandles();

用于不同窗口的切换:switchTo().window();

页面操作过程中有时候点击某个链接会弹出新的窗口, 这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switchTo().window()方法可以实现在不同的窗口之间切换。

百度首页百度注册页为例,在两个窗口之间的切换如下图。

实现窗口切换的代码如下:

import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class MoreWindows { public static void main(String[] arge) throws InterruptedException{ WebDriver driver = new ChromeDriver(); driver.get("https://www.baidu.com"); //获得当前窗口句柄 String search_handle = driver.getwindowHandle(); //打开百度注册窗口 driver.findElement(By.linkText("登录")).click(); Thread.sleep(3000); driver.findElement(By.linkText("立即注册")).click(); //获得所有窗口句柄 Set handles = driver.getwindowHandles(); //判断是否为注册窗口, 并操作注册窗口上的元素 for(String handle : handles){ if (handle.equals(search_handle)==false){ //切换到注册页面 driver.switchTo().window(handle); System.out.println("Now register window!"); Thread.sleep(2000); driver.findElement(By.name("userName")).clear(); driver.findElement(By.name("userName")).sendKeys("user name"); driver.findElement(By.name("phone")).clear(); driver.findElement(By.name("phone")).sendKeys("phone number"); //...... Thread.sleep(2000); //关闭当前窗口 driver.close(); } } Thread.sleep(2000); driver.quit(); } }

在本例中所涉及的新方法如下:

getwindowHandle(): 获得当前窗口句柄。

getwindowHandles(): 返回的所有窗口的句柄到当前会话。

switchTo().window(): 用于切换到相应的窗口,与上一节的switchTo().frame()类似,前者用于不同窗口的切换, 后者用于不同表单之间的切换。

到此这篇关于Java Selenium实现多窗口切换的示例代码文章就介绍到这了,更多相关Java Selenium 多窗口切换内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...