我有一些代码可以点击网页上的链接,该链接会打开一个新标签页并自动将我的视图切换到新标签页。当我尝试从新网页中选择元素时,我会收到错误,说这些元素即使存在也不存在。在测试崩溃之前的大部分时间,选项卡实际上都会更改回原始状态,这使我相信它实际上是在搜索旧选项卡上的元素。我尝试使用_driver.SwitchTo().Window(_driver.WindowHandles.Last());
希望它能做某事但它只是完全关闭窗口并打开一个新的空白窗口。我如何获得它以便我可以从新网页获取元素并且不再引用旧选项卡?
答案 0 :(得分:0)
使用此帮助程序功能切换到您选择的选项卡。索引由它们创建的顺序决定。所以你的默认tabIndex是0,如果你打开一个新的选项卡/窗口,它将有tabIndex 1,依此类推......
internal void SwitchToTab(int tabIndex) {
WebDriver.Instance.Wait(2);
var newTab = WebDriver.Instance.Driver().WindowHandles[tabIndex];
Instance.Driver().SwitchTo().Window(newTab);
WebDriver.Instance.Wait(2);
}
等待只是为了让新标签加载。这些等待不是好习惯,所以你应该寻找其他方法来等待你正在等待的任何元素/状态。