gpt4 book ai didi

java - 在 Chrome 中打开新选项卡(不是新选项卡中的链接)并关注它 Selenium java

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:29 25 4
gpt4 key购买 nike

我遇到以下问题:当我运行代码时,我想打开新选项卡(不是新选项卡中的链接),但打开它后我无法专注于它。重点还是在旧的。这是我的代码:

    WebDriver driver = new ChromeDriver();

driver.get("url for the initial tab");

driver.manage().window().maximize();

WebDriverWait wait = new WebDriverWait(driver, 15);


// Open tab for email generation
String url = "url for tab 2";

((JavascriptExecutor) driver).executeScript("window.open(arguments[0])", url);

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

String site = driver.getCurrentUrl();



if(driver.findElements(By.xpath("xpath here")).size() != 0){
System.out.println("Element is Present");
}else{
System.out.println("Element is Absent");
}
System.out.println("Current URL:" + site); //I get the initial url.

另外,当我关注新标签后如何切换到旧标签?谢谢

最佳答案

这是您问题的答案:

我使用了您自己的代码,并通过一些调整重写了它,以便使用 java.util 中的 SetWindowHandles 配合使用。现在,您的代码首先打开 https://google.com,打印 页面标题,然后在新选项卡中打开 URL https://www.facebook.com/ 将焦点转移到 URL https://www.facebook.com/ 的新选项卡,打印 页面标题 和当前 URL:

    import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Q44970997_newTabURL
{

public static void main(String[] args)
{

String site = null;
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://google.com");
driver.manage().window().maximize();
System.out.println(driver.getTitle());
String first_tab = driver.getWindowHandle();
String url = "https://www.facebook.com/";
((JavascriptExecutor) driver).executeScript("window.open(arguments[0])", url);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
site = driver.getCurrentUrl();
Set<String> tab_handles = driver.getWindowHandles();
Iterator<String> itr = tab_handles.iterator();
while(itr.hasNext())
{
String next_tab = itr.next();
if(!first_tab.equalsIgnoreCase(next_tab))
{
driver.switchTo().window(next_tab);
System.out.println(driver.getTitle());
site = driver.getCurrentUrl();
System.out.println("Current URL:" + site); //You get the new url.
}
}

}

}

如果这能回答您的问题,请告诉我。

关于java - 在 Chrome 中打开新选项卡(不是新选项卡中的链接)并关注它 Selenium java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44970997/

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