用于Chrome和Firefox的Selenium在C#中编码时不会处理切换到在自动化测试期间打开的新选项卡。我不认为它着重于打开新标签,因为当我完全运行我的程序时,我收到此错误:“超出范围”异常和“索引超出范围。必须是非负数,小于收藏品“。C#Selenium在Chrome和Firefox中打开新选项卡时没有新窗口句柄
我已经尝试使用:
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:无法找到元素:{method ...}”,我认为这是正确的,因为焦点仍在第一个选项卡上。任何帮助将不胜感激。谢谢。
一旦你关闭了'tab [0]',旧的'tab [1]'不会成为新的'tab [0]'? – sokkyoku
是的,我没注意到。谢谢。但现在我唯一的问题是,我作为输入的xpath无法在新选项卡上找到。这是我会发现的另一个问题。再次感谢 – CRich
如果这解决了问题,您的问题提到我可以将它作为您接受的答案发布。 – sokkyoku