簡體   English   中英

在Chrome中打開新標簽頁(不在新標簽頁中鏈接),並專注於此

[英]open new tab(not link in new tab) in Chrome and focus on it Selenium java

我有以下問題:運行代碼時,我想打開新標簽頁(而不是新標簽頁中的鏈接),但是在打開它之后,我無法集中精力了。 重點仍然是舊的。 這是我的代碼:

    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 ,打印Page Title ,然后在新選項卡中打開URL https://www.facebook.com/ ,將其焦點轉移到URL為https://www.facebook.com/的新選項卡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.
                }
            }

        }

    }

讓我知道這是否回答了您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM