登录后,我将切换到此帧,我收到以下错误:
"无法计算表达式,因为本机框架位于调用堆栈的顶部。"
以下是代码行:
Driver.SwitchTo().Frame("tabMain__ctl0_ult.org.com-Default");
该脚本已执行多次并且工作正常。但是今天突然间我得到了这个错误。我查看了之前的帖子,但没有任何帮助。请提出任何解决方案。
答案 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);
}
等待只是为了让新标签加载。这些等待不是好习惯,所以你应该寻找其他方法来等待你正在等待的任何元素/状态。
这与我在此主题中发布的答案相同:C# Selenium - Can't Get Elements in New Tab