我正在使用selenium WebDriver浏览一系列页面,并最终达到将页面重定向到外部付款页面的程度。它是重定向的现有窗口,而不是打开的新窗口,但是如果我在重定向后尝试与任何对象交互,则会得到异常Unable to find element on closed window
。该页面需要登录,因此我无法提供您使用的链接。
我做了一些调试,发现在付款页面点,driver.WindowHandles
返回一个空集合,driver.CurrentWindowHandle
将抛出NoSuchWindowException。
我使用的是IE 8和32位的WebDriver 2.44.0.0。我已经玩过推荐的IE浏览器设置,但还没有找到任何帮助。有谁知道为什么我的WebDriver正在丢失它的句柄?
请注意,这适用于Chrome和Firefox驱动程序。
示例:
public void Test()
{
var driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl(site);
var check1 = driver.WindowHandles; // 1 window exists here
driver.FindElement(elementA).Click();
System.Sleep(10000);
var check2 = driver.WindowHandles; // 0 windows exist here
driver.FindElement(elementB).Click();
}