java界面切换代码下载_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 多窗口切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值