132 votes

Comment ouvrir un nouvel onglet en utilisant Selenium WebDriver en Java ?

Comment ouvrir un nouvel onglet dans le navigateur Firefox existant en utilisant Selenium WebDriver (alias Selenium 2) en Java ?

95voto

Yi Zeng Points 23395

Juste pour tous ceux qui cherchent une réponse dans les bindings Ruby, Python et C# (Selenium 2.33.0).

Notez que les touches à envoyer dépendent de votre système d'exploitation. Par exemple, Mac utilise CMD + T au lieu de Ctrl + T .

Ruby

require 'selenium-webdriver'

driver = Selenium::WebDriver.for :firefox
driver.get('http://stackoverflow.com/')

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://stackoverflow.com/")

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://stackoverflow.com/");

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

            driver.Quit();
        }
    }
}

64voto

Nagaraju Jampani Points 726

Le code ci-dessous ouvrira le lien dans un nouvel onglet.

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

Le code ci-dessous ouvrira un nouvel onglet vide.

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

39voto

kernowcode Points 51

Pourquoi ne pas le faire

driver.ExecuteScript("window.open('your url','_blank');");

18voto

Ishita Shah Points 2260

Pour ouvrir un nouvel onglet en utilisant JavascriptExecutor,

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

Contrôle sur l'onglet selon l'index :

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

Contrôle du conducteur sur l'onglet principal :

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

9voto

Ripon Al Wasim Points 5161

Vous pouvez utiliser le code suivant en utilisant Java avec Selenium WebDriver :

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

En utilisant JavaScript :

WebDriver driver = new FirefoxDriver(); // Firefox or any other Driver
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.open()");

Après avoir ouvert un nouvel onglet, il doit passer à cet onglet :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X