2016-04-06 15 views
0

Ich versuche, eine neue Registerkarte in Selenium.WebDriver.ChromeDriver "Version =" 2.21.0.0 zu öffnen, aber es öffnet nichts, aber wenn ich den Debug Tracking-Schritt zurück verschieben auf die Linie „body.SendKeys (Keys.Control +‚t‘)“ zum zweiten Mal erneut ausführen, es funktioniert ??Chrome Webdriver kann nicht neue Registerkarte öffnen

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); 
    IWebElement body = wait.Until(ExpectedConditions.ElementIsVisible(By.TagName("body")));       
          Thread.Sleep(2000); 
          body.SendKeys(Keys.Control + 't'); 

Update: es scheint einen Anschlag auf Chrom zu setzen, hat es die Registerkarte öffnen . richtig statt Thread.sleep zu verwenden, nur versuchen:

IJavaScriptExecutor js = driver as IJavaScriptExecutor; 
js.ExecuteScript("return window.stop"); 
body.SendKeys(Keys.Control + 't'); 

Antwort

2

Um eine neue Registerkarte mit Chrome zu öffnen:

var driver = new ChromeDriver(); 

    driver.Navigate().GoToUrl("http://stackoverflow.com"); 

    // open a new tab and set the context 
    driver.ExecuteScript("window.open('_blank', 'tab2');"); 
    driver.SwitchTo().Window("tab2"); 

    driver.Navigate().GoToUrl("https://www.google.com"); 
+0

danke, ich habe die gleiche Methode verwendet, und ja, das ist bis jetzt die einzige Möglichkeit, die Funktion zu bekommen –

0

den folgenden Code für Ihr Problem verwenden:

Actions act = new Actions(driver); 
act.sendKeys(Keys.CONTROL,"t").build().perform(); 
+0

weiß nicht, warum es nicht so gut, seltsam funktioniert. –

+0

Sind Sie sicher, dass dies für C# ist? – Nulle

Verwandte Themen