如何在 Selenium 中将焦点切换至新的弹出选项卡?
我们可以使用 Selenium 驱动程序将焦点切换到新的弹出选项卡。getWindowHandles 和 getWindowHandle 方法可用于处理新的弹出选项卡。getWindowHandles 方法将所有当前打开的窗口句柄存储在设置数据结构中。
getWindowHandle 方法将处于焦点状态的打开浏览器的窗口句柄存储起来。迭代器方法用于在所有窗口句柄 ID 上进行迭代。我们必须添加import java.util.Set 来容纳集合,并添加import java.util.List 和 import java.util.Iterator 语句来容纳我们代码中的迭代器。
Selenium 驱动程序对象可以访问父窗口的元素。为了将焦点从父窗口切换到新的弹出选项卡,我们将借助 switchTo().window 方法,并将弹出窗口的窗口句柄 ID 作为该方法的参数传递。
示例
代码实现。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import java.util.List;
import java.util.Set;
import java.util.Iterator;
public class SwitchToPopup {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://secure.indeed.com/account/login");
//implicit wait
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.findElement(By.id("login-google-button")).click();
// window handles
Set wnd = driver.getWindowHandles();
// window handles iterate
Iterator i = wnd.iterator();
String popwnd = i.next();
String prntw = i.next();
// switching pop up tab
driver.switchTo().window(popwnd);
System.out.println("Page title of popup: "+ driver.getTitle());
// closes all windows
driver.quit();
}
}输出

广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP