【发布时间】:2014-10-21 03:45:24
【问题描述】:
基于这个post,我设法打开了一个新标签,但是当我尝试在新标签中导航时,导航发生在旧标签中。
我看到我应该使用这个:
driver.switchTo().window(windowName);
但是windowName 是什么?
【问题讨论】:
基于这个post,我设法打开了一个新标签,但是当我尝试在新标签中导航时,导航发生在旧标签中。
我看到我应该使用这个:
driver.switchTo().window(windowName);
但是windowName 是什么?
【问题讨论】:
你必须在这里使用窗口句柄功能。您要求在 c# 中提供解决方案。我将 java 与 selenium webdriver 一起使用。他们都会使用相似的概念。
以下是 java 中的示例工作代码:
String parentHandle = driver.getWindowHandle(); // get the current window handle
System.out.println(parentHandle); //Prints the parent window handle
String anchorURL = anchor.getAttribute("href"); //Assuming u are clicking on a link which opens a new browser window
anchor.click(); //Clicking on this window
for (String winHandle : driver.getWindowHandles()) { //Gets the new window handle
System.out.println(winHandle);
driver.switchTo().window(winHandle); // switch focus of WebDriver to the next found window handle (that's your newly opened window)
}
//Now your driver works on the current new handle
//Do some work here.....
//Time to go back to parent window
driver.close(); // close newly opened window when done with it
driver.switchTo().window(parentHandle); // switch back to the original window
希望这会有所帮助!
【讨论】:
driver.WindowHandles 是获取所有句柄的方法,只需使用 .Last() 就可以得到你想要的
IWebElement body = driver.FindElement(By.TagName("body")); body.SendKeys(Keys.Control + 't'); driver.SwitchTo().Window(driver.WindowHandles.Last());