2012-01-16 24 views
-2

リンクをクリックするとjavascriptの確認が表示されますが、確認が表示されたらテストが停止しています。テスト中の残りのコード行は、確認ボックスで[OK]または[キャンセル]を手動でクリックするまで実行されません。以下のコードを参照してください:ポップアップが表示されたときにテストが終了する

private WebDriver webDriver; 

@Test 
public void testClickButton() { 

webDriver = getFireFoxDriver(); 

webDriver.findElement(By.xpath("//a[text() = 'Delete']")).click(); 

//JAVASCRIPT CONFIRMATION COMES UP AND THE TEST GETS STUCK! 
//THE BELOW LINE DOES NOT EXECUTE UNTIL THE CONFIRMATION IS MANUALLY CLICKED. 
closePopUp(); 
} 

私はこの問題をFirefoxでのみ直面しています。テストはIEとChromeで正常に動作します。

同様の問題は、@WebDriver closing the popupに掲載されています。ここで、回避策として、Javaスクリプトを使用してポップアップをサイレンシングすることが推奨されています。これは、問題を回避する興味深い方法のように見えますが、私はそれにJavaスクリプトを使用しないで代替があるかどうかを知りたいと思います。それは私にもこの問題の根本的な原因を理解させるのに役立つかもしれません。私はリンクをクリックしてから数ミリ秒待つことを追加しようとしましたが、それは助けになりませんでした。かなりのグーグル・グーグルも行ったが、どちらも役に立たなかった。

アイデア?

+0

あなたはjavascriptに対して何を持っていますか? – Anders

答えて

1

私はそれを閉じるには、ポップアップをこのように受け入れています:

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

そのjavaのないスクリプトが、それは動作します。ポップアップを閉じることもできます。

+0

あなたの返事Tarkenありがとう。これはまさに上記の 'closePopUp()'メソッド呼び出しで行っていることです。しかし、問題は、ポップアップが出たらテストが止まってしまうので、 'closePopUp()'コールが実行されないということです。 – dgd

+0

ポップアップウィンドウが新しいウィンドウですか?あなたのclosePopUpはドライバを知っていますか?はいの場合は、コードをさらに投稿できますか? – Tarken

+0

ポップアップは、Webアプリケーション内の特定のエンティティを削除するためのjavascriptの確認です。以下のclosePopUpメソッドコードを見つけてください: 'public void closePopUp(){ try { アラートアラート= webDriver.switchTo()。アラート(); System.out.println(alert.getText()); alert.accept(); } catch(NoAlertPresentException exc){ exc.printStackTrace(); } ' Firefoxドライバに割り当てられたクラスレベル変数として' webDriver'を考慮してください。 – dgd

関連する問題