2017-04-05 18 views
0

以下のコードを使用して、警告テキストを確認してから閉じることができます。警告テキストの確認に失敗しています。Selenium webdriverを使用して警告テキストを取得できません

WebDriverWait wait = new WebDriverWait(driver, 10); 
      wait.until(ExpectedConditions.alertIsPresent()); 
      Alert alert = driver.switchTo().alert(); 
      alertText = alert.getText(); 

alertTextはnullとして返されます。テキストをアサートする次のステップは失敗しています。 次のステップ:

driver.switchTo().alert().accept(); 

すべての問題のない警告を受け入れます。

別の奇妙なシナリオは、私はそのうまく動作しています。しかし、私がアサーションを実行しているときにエラーをスローします。

実行中とデバッグ中に見つかった別の相違点。アラートを実行している間、 このページは

は非常に奇妙なルックス複数のメッセージを作成できませんこのメッセージが付属しています。

+0

私はこれを試してみましたが、それは助けをくぼみ。 – manutd

+0

アラートに存在するthextは何ですか? – kushal

答えて

2

「このページではさらに多くのメッセージを作成しないようにしてください」というメッセージは、サイトに数百の警告が表示されないようにするためのブラウザ機能です。

あなたのコードをデバッグしている間、それは動作しているので、実行中でも動作するはずです。動作していない場合、間違いなくその同期の問題。私は確かにいくつかのハードウエイトを追加することを願っています。警告のポップアップからのアラートテキストを取得する

その他のアプローチ:

public String getJsAlertText() 
{ 
Object txt = ((JavascriptExecutor)driver).executeScript("return 
window.alert.myAlertText;"); 
return (String)txt; 
} 
+0

「このページでより多くのメッセージを作成させない」というメッセージが表示されるのは、サイトが何百もの警告を表示しないようにするためのブラウザ機能です。しかし、なぜそれが実行中に来ているだけです。デバッグ中に私はこれを観察していません。 – manutd

+0

デバッグ中の私の知るところでは、何らかのアクションを実行するのをいくらか待つことになります。つまり、ステップの実行が行われないと言う限り、しかし、その連続したアクションを数秒で実行している間、ブラウザはJSコードの問題とみなし、無限ループでalertを呼び出してブラウザをフリーズしようとします。 – MamathaMacherla

+0

オブジェクトtxt =((JavascriptExecutor)ドライバ).executeScript( "return window.alert.myAlertText;"); これは例外をスローしています。モーダルダイアログが表示されます。どうすればこれを達成できますか? – manutd

関連する問題