2017-07-13 34 views
0

新しいタブを開き、自動的に新しいタブにビューを移動するWebページからリンクをクリックするコードが少しあります。その新しいWebページから要素を選択しようとすると、要素が存在しても要素が存在しないというエラーが表示されます。テストがクラッシュする前のほとんどの時間、タブは実際に元の状態に戻り、実際には古いタブの要素を探していると私は信じています。私はそれが何かを行うことを期待して_driver.SwitchTo().Window(_driver.WindowHandles.Last());を使用しようとするが、それは単にウィンドウから完全に閉じて、新しい空のウィンドウを開く。どうすれば新しいWebページから要素を取得でき、以前のタブを参照できなくなるのですか?C#Selenium - 新しいタブで要素を取得できない

答えて

0

このヘルパー機能を使用すると、選択したタブに切り替えることができます。索引は作成された順序で決定されます。だからあなたのデフォルトのtabIndexを使用すると、新しいタブ/ウィンドウを開く場合、それはなどのtabIndex 1を持っているとします、0 ..です

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); 
    } 

待機はちょうど新しいタブ負荷をさせるためのものです。これらの待機は良い習慣ではないので、あなたが待っている要素/状態を待つための他の方法を探すべきです。

関連する問題