2017-02-28 7 views
-1

リンクをクリックすると別のタブが開き、シナリオを自動化しようとしています。Seleniumが別のタブのUI要素を検出できません

質問1:フォーカスを第2タブに特に設定する必要がありますか、セレンは自動的に第2タブの要素を見つけますか?私は第二のタブにフォーカスを設定するには、以下のコードを使用しています

String currentWindow = driver.getWindowHandle(); 
driver.switchTo().window(currentWindow); 

問題:私はセレンが、指定された要素を見つけることができないというエラーを取得しています。

私は間違って何をしているのか、2番目のタブに切り替える最善の方法を教えてもらえますか?

+0

[JavaでSelenium WebDriverを使用するスイッチタブの可能な複製](http://stackoverflow.com/questions/12729265/ switch-tabs-using-selenium-webdriver-with-java) –

答えて

1

実際には、最初のタブにフォーカスを設定し、2番目のタブにはフォーカスを設定しません。あなたはこの

String currentWindow = driver.getWindowHandle(); 

// open the new tab here 

for (String handle : driver.getWindowHandles()) { 
    if (!handle.equals(currentWindow)) { 
     driver.switchTo().window(handle); 
    } 
} 

ような何かをする必要があり、あなたの質問への答えはイエス、あなたが新しいタブでそのフォーカスを設定するdriverを指示する必要があります。

0

すべてのウィンドウハンドルをハンドラ=ドライバとして取得できます。 GetWindowHandles()は、すべてのハンドラ文字列を返します。次に、driver.switchto()。window(ハンドラ[1])を使用して適切なハンドルにインデックススイッチを使用します。

関連する問題