2017-07-18 57 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