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 a Single Sign-On . 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());
L'envoi de Keys.Control + "t"
n'a pas fonctionné pour moi. Je devais le faire avec javascript, puis passer à cela.
((IJavaScriptExecutor)driver).ExecuteScript("window.open();");
driver.SwitchTo().Window(driver.WindowHandles.Last());
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 basculer entre les onglets (merci @Andersson) avec:
driver.SwitchTo().Window(driver.WindowHandles.Last());
driver.SwitchTo().Window(driver.WindowHandles.First());