Как открыть ссылку на новой вкладке (хром) с помощью Selenium WebDriver?

System.setProperty("webdriver.chrome.driver", "D:\softwares\chromedriver_win32\chromedriver.exe");

WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://mail.google.com/");
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN); 
driver.findElement(By.linkText("www.facebook.com")).sendKeys(selectLinkOpeninNewTab);

Открывается новая вкладка, но URL-адрес не открывается.

java,google-chrome,selenium,selenium-webdriver,browser-tab,

6

Ответов: 7


7 принят

Я проверил с помощью кода ниже, и он отлично работает для меня. Я нашел ответ отсюда .

    driver = new ChromeDriver();
    driver.manage().window().maximize();

    baseUrl = "http://www.google.co.uk/";
    driver.get(baseUrl);
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

    ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1)); //switches to new tab
    driver.get("https://www.facebook.com");

    driver.switchTo().window(tabs.get(0)); // switch back to main screen        
    driver.get("https://www.news.google.com");

уя 14

этот ниже код работает для меня в Selenium 3 и chrome версии 58.

    WebDriver driver = new ChromeDriver();
    driver.get("http://yahoo.com");  
    ((JavascriptExecutor)driver).executeScript("window.open()");
    ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1));
    driver.get("http://google.com");

1

Сначала откройте пустую новую Tab .get (), используя клавиши Ctrl+, tа затем используйте для получения нужного URL-адреса. Ваш код должен выглядеть примерно так:String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,"t"); driver.findElement(By.tagName("body")).sendKeys(selectLinkOpeninNewTab); driver.get("www.facebook.com");

By.linkText()

Если вы хотите открыть ссылку на текущем виде на новой вкладке, можно использовать код, который вы написали выше. Вместо того Byчтобы убедиться, что вы используете соответствующий Byселекторный класс для выбора веб-элемента.


1

Я использовал приведенный ниже код, чтобы открыть новую вкладку в браузере, используя C # selenium ..

Драйвер IJavaScriptExecutor js = (IJavaScriptExecutor);

js.ExecuteScript ( "window.open ();");


1

Я пробовал другие методы, но никто из них не работал, также не было ошибок, но когда я использовал код ниже, это сработало для меня.

((JavascriptExecutor)driver).executeScript("window.open()");
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
driver.get("http://google.com");
Java, Google-хром, селен, селен WebDriver, браузер-вкладка,
Похожие вопросы