Mon code actuel ci-dessous en C # ouvre une fenêtre puis navigue vers l’URL spécifiée après un clic sur un bouton.
protected void onboardButton_Click(object sender, EventArgs e) { IWebDriver driver = new ChromeDriver(); driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); driver.Navigate().GoToUrl("http://www.google.com") }
Mais le site sur lequel je prévois de naviguer dispose d’ une connexion unique . Comment puis-je ouvrir un nouvel onglet dans ma session de navigateur existante et naviguer à partir de là? Le code ci-dessus ne semble pas fonctionner.
Merci mille fois!
Pour gérer un nouvel onglet, vous devez d’abord y accéder. Essayez de suivre:
driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); driver.SwitchTo().Window(driver.WindowHandles.Last()); driver.Navigate().GoToUrl("http://www.google.com")
Aussi, vous devrez peut-être revenir en arrière:
driver.SwitchTo().Window(driver.WindowHandles.First());
Cela peut ne pas fonctionner:
driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");
Alternative: recherche d’un élément cliquable avec une cible vide (recherchez “vierge” dans le code de surce de la page). Cela ouvrira un nouvel onglet.
Puis basculez entre les tabs (merci @Andersson) avec:
driver.SwitchTo().Window(driver.WindowHandles.Last()); driver.SwitchTo().Window(driver.WindowHandles.First());
IWebDriver driver = new ChromeDriver();
Changer ceci en:
var driver = new ChromeDriver();
Je ne sais pas pourquoi. Peut-être l’IWebDriver rate-t-il la méthode.