Вопрос-ответ

How to open a new tab using Selenium WebDriver in Java?

Как открыть новую вкладку с помощью Selenium WebDriver в Java?

Как я могу открыть новую вкладку в существующем браузере Firefox, используя Selenium WebDriver (также известный как Selenium 2) в Java?

Переведено автоматически
Ответ 1

Просто для всех, кто ищет ответ в привязках Ruby, Python и C # (Selenium 2.33.0).

Обратите внимание, что фактические ключи для отправки зависят от вашей операционной системы. Например, Mac использует CMD + T вместо Ctrl + T.

Ruby

require 'selenium-webdriver'

driver = Selenium::WebDriver.for :firefox
driver.get('http://javalang.ru/')

body = driver.find_element(:tag_name => 'body')
body.send_keys(:control, 't')

driver.quit

Python

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://javalang.ru/")

body = driver.find_element_by_tag_name("body")
body.send_keys(Keys.CONTROL + 't')

driver.close()

C#

using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace StackOverflowTests {

class OpenNewTab {

static void Main(string[] args) {

IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://javalang.ru/");

IWebElement body = driver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Control + 't');

driver.Quit();
}
}
}
Ответ 2

Приведенный ниже код откроет ссылку в новой вкладке.

String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN);
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);

Приведенный ниже код откроет пустую новую вкладку.

String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,"t");
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);
Ответ 3

Почему бы не сделать это

driver.ExecuteScript("window.open('your url','_blank');");
Ответ 4

Чтобы открыть новую вкладку с помощью JavascriptExecutor,

((JavascriptExecutor) driver).executeScript("window.open()");
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));

Будет управлять вкладкой в соответствии с индексом:

driver.switchTo().window(tabs.get(1));

Управление драйвером на главной вкладке:

driver.switchTo().window(tabs.get(0));
java selenium selenium-webdriver