gpt4 book ai didi

java - 如何在同一个浏览器中打开多个标签页?

转载 作者:行者123 更新时间:2023-11-30 07:55:47 26 4
gpt4 key购买 nike

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class newtab {

public static void main(String[] args) {
// TODO Auto-generated method stub
String driverpath = "geckodriver path\\";
System.setProperty("webdriver.gecko.driver",driverpath+"geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com");
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.get("http://www.gmail.com");


}

}

在我的代码中,我想在同一个浏览器中打开两个选项卡,但这段代码只打开一个选项卡。如何在同一浏览器中打开多个标签页?

最佳答案

您无法在其他选项卡中打开 Gmail,因为焦点仍在第一个窗口,因为 selenium 使用其窗口句柄识别要使用的特定窗口,因此您必须首先使用句柄切换该特定窗口,例如:driver.switchTo ().window(句柄值)

完整代码如下:

 public static void main(String[] args) {

System.setProperty("webdriver.chrome.driver", "c:\\SRP\\chromedriver.exe");

WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");

String newTab =null;
String baseTab = driver.getWindowHandle();

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

Set <String> allTabs = driver.getWindowHandles();

allTabs.remove(baseTab);

Iterator<String> itr = allTabs.iterator();

while(itr.hasNext()){


newTab = (String) itr.next();

}

driver.switchTo().window(newTab);
driver.get("http://www.gmail.com");

}

关于java - 如何在同一个浏览器中打开多个标签页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com