【问题标题】:open new tab(not link in new tab) in Chrome and focus on it Selenium java在 Chrome 中打开新标签(不在新标签中的链接)并专注于它 Selenium java
【发布时间】:2017-07-07 12:38:45
【问题描述】:

我有以下问题:当我运行我的代码时,我想打开新标签(不是新标签中的链接),但打开后我无法专注于它。重点仍然是旧的。 这是我的代码:

    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.

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

【问题讨论】:

  • 目前在我的手机上,但这应该可以解决您的问题:stackoverflow.com/a/22944233
  • @EvilFeline 谢谢,这正是我所需要的。

标签: java macos selenium-webdriver tabs


【解决方案1】:

这是您问题的答案:

我使用了您自己的代码,并通过一些调整重写了它,以便使用 java.util 中的 Set 使用 WindowHandles强>。现在您的代码首先打开 https://google.com,打印 Page Title,然后在新选项卡中打开 URL https://www.facebook.com/ 将焦点转移到带有 URL https://www.facebook.com/ 的新选项卡,打印 Page Title 和当前 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.
                }
            }

        }

    }

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

【讨论】:

    猜你喜欢
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    相关资源
    最近更新 更多