C#硒-罐';无法在新选项卡中获取元素
我有一段代码,可以点击网页上的链接,打开一个新标签,并自动将我的视图切换到新标签。当我尝试从新网页中选择元素时,我会收到错误消息,说这些元素不存在,即使它们确实存在。在测试崩溃之前的大多数时候,选项卡实际上会变回原来的状态,这让我相信它实际上是在搜索旧选项卡上的元素。我尝试使用C#硒-罐';无法在新选项卡中获取元素,c#,selenium,C#,Selenium,我有一段代码,可以点击网页上的链接,打开一个新标签,并自动将我的视图切换到新标签。当我尝试从新网页中选择元素时,我会收到错误消息,说这些元素不存在,即使它们确实存在。在测试崩溃之前的大多数时候,选项卡实际上会变回原来的状态,这让我相信它实际上是在搜索旧选项卡上的元素。我尝试使用\u driver.SwitchTo().Window(\u driver.WindowHandles.Last())希望它能做些什么,但它只是完全关闭窗口,打开一个新的空白窗口。如何获取它,以便从新网页获取元素,而不再引
\u driver.SwitchTo().Window(\u driver.WindowHandles.Last())
希望它能做些什么,但它只是完全关闭窗口,打开一个新的空白窗口。如何获取它,以便从新网页获取元素,而不再引用旧选项卡?使用此帮助功能切换到您选择的选项卡。索引由它们的创建顺序决定。因此,默认的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);
}
等待只是为了让新选项卡加载。这些等待不是好的做法,因此您应该寻找其他方法来等待您正在等待的任何元素/状态。使用此帮助函数切换到您选择的选项卡。索引由它们的创建顺序决定。因此,默认的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);
}
等待只是为了让新选项卡加载。这些等待不是好的实践,所以您应该寻找其他方法来等待您正在等待的元素/状态