亲宝软件园·资讯

展开

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

虫师 人气:0
想了解Java Selenium实现多窗口切换的代码实例的相关内容吗,虫师在本文为您仔细讲解Java Selenium 多窗口切换的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java,Selenium,多窗口切换,下面大家一起来学习吧。

在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,就需要主机切换到新窗口进行操作。WebDriver 提供了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<String> 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();
 }
}

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

加载全部内容

相关教程
猜你喜欢
用户评论