【发布时间】:2017-01-31 04:40:13
【问题描述】:
用于 Chrome 和 Firefox 的 Selenium,使用 C# 编码,将无法处理切换到在我的自动化测试期间打开的新选项卡。我不认为它专注于打开的新标签,因为当我完全运行我的程序时,我收到这个错误:“超出范围”异常和“索引超出范围。必须是非负数并且小于集合。”
我尝试过使用:
driver.SwitchTo().Window(driver.WindowHandles.Last());
和
driver.SwitchTo().Window(driver.WindowHandles[1]);
driver.SwitchTo().Window(driver.WindowHandles[0]).Close(); // close the first tab
System.Threading.Thread.Sleep(5000); //Wait 5 seconds just in case
driver.SwitchTo().Window(driver.WindowHandles[1]); //Makes sure I'm on the correct tab
但是没有运气。如果我不关闭第一个选项卡,我会收到错误:“NoSuchElementException:Unable to locate element:{method...}”我认为这是正确的,因为焦点仍在第一个选项卡上。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
关闭
tab[0]后,旧的tab[1]不会变成新的tab[0]吗? -
是的,我没有注意到。谢谢。但现在我唯一的问题是我输入的 xpath 无法在新选项卡上找到。这是我会发现的另一个问题。再次感谢
-
如果这解决了您的问题提到的问题,我可以将其发布为您接受的答案。
-
还有一个问题,当驱动切换到窗口时,窗口会自动对焦吗?因为到目前为止,要么我的窗口没有聚焦,要么我的 xpath 错误,因为我总是收到“无法找到元素”错误。
标签: c# google-chrome selenium firefox