Comment ouvrir un nouvel onglet dans le navigateur Firefox existant en utilisant Selenium WebDriver (alias Selenium 2) en Java ?
Réponses
Trop de publicités?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();
}
}
}
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);
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));
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));
- Réponses précédentes
- Plus de réponses