我需要在两个不同的选项卡中打开两个不同的url,然后需要不断在它们之间进行切换,因为我的应用程序本身就是这样。
我已经提供了一些用于打开不同URL的代码以及窗口处理代码,但是它似乎无法正常工作,因为第一个选项卡将打开gmail.com,然后打开yahoo.com,第二个选项卡然后打开yahoo.com。我需要将tab1作为gmail.com,将tab2作为yahoo.com,并且还需要在脚本之间随时切换到它们。
driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.gmail.com");
Thread.sleep(3000);
((JavascriptExecutor)driver).executeScript("window.open()");
handlewindlow("Untitled"); //Untitled is title for new tab
}
static void handlewindlow(String title) {
Set<String>setHandleValues=driver.getWindowHandles();
Iterator<String> iteHandleValues=setHandleValues.iterator();
while(iteHandleValues.hasNext()==true){
String handleValue=iteHandleValues.next();
driver.switchTo().window(handleValue);
CurrentUrl=driver.getCurrentUrl();
String CurrentUrl=driver.getTitle();
driver.get("https://www.yahoo.com");
}
}
答案 0 :(得分:0)
这是我要使用的逻辑。
WebDriver driver = new ChromeDriver();
driver.get("https://google.com");
String firstTab = driver.getWindowHandle();
// open yahoo in new tab
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.open('https://yahoo.com')");
// get the 2nd browser handle
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
String secondTab = driver.getWindowHandle();
// switching to first tab
driver.switchTo().window(firstTab);
//switching to second tab
driver.switchTo().window(secondTab);