2017-07-18 28 views
1

登录后,我切换到这个框架在那里我得到了以下错误的顶端不能计算表达式:Selenium c#切换到帧时出错。因为本地帧是在调用堆栈

"Cannot evaluate expression because a native frame is on the top of the call stack."

下面是代码行:

Driver.SwitchTo().Frame("tabMain__ctl0_ult.org.com-Default"); 

该脚本已被执行多次,并且工作得很好。但是,今天突然间我收到了这个错误。我看着以前的帖子,但没有任何帮助。请提出任何解决方案。

+0

我重新安装了Visual Studio和我仍然有同样的问题。 – roxy

+0

我已经绞尽脑汁寻找任何可能的解决方案并搜索相同的解决方案。请任何建议真的很感激。 – roxy

+0

找到了解决办法,或者我应该说出问题的根源。 – roxy

回答

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

相关问题