2017-05-11 5 views
1

webdriverをセレンを使用して、ポップアップウィンドウに表示されます。は、シナリオは以下の通りである

は、ページを開く - >このページでは、別のウィンドウ 新しいウィンドウを作成する - >警告

を示し、今私は2つを持っていますウィンドウハンドルと2番目のウィンドウはアラートmsgでフリーズします。

私は、コードを使用:

WebDriverWait(driver, 2).until(EC.alert_is_present(), 
             'Timed out waiting for PA creation ' + 
             'confirmation popup to appear.') 

私の質問は、アラートをキャッチアップすることで、ドライバが警報を示した新しいウィンドウに切り替える必要がありますか? 現在のウィンドウハンドラに関係なく、driver.switch_to.alertを使用してアラートをキャッチすることができます。

テストページはこちらです:http://alertonpopwindow.bitballoon.com/

おかげで、 Mhdと。

+0

を試すことができますあなたは '警告()'関数は、私はいくつかのウィンドウを開いて、Iドンたものならば – Andersson

+0

呼び出されたウィンドウに切り替える必要がありますどの人がアラートを知っているのか知りませんか? – MhdFadhil

答えて

0

あなたはalert()と呼ばれたウィンドウがわからない場合、あなたは

from selenium.common.exceptions import NoAlertPresentException 

for window in driver.window_handles: 
    driver.switch_to.window(window) 
    try: 
     driver.switch_to.alert.accept() 
     break 
    except NoAlertPresentException: 
     pass 
+1

このコードは、driver.switch_to.alertから関数ブラケットを削除した後に機能します。しかし、まだ、私はアラートを受け入れるか、または却下することはできません! ありがとうございました。 – MhdFadhil

+0

ああ...うん、それは呼び出し可能ではありません:)あなたの問題を解決するのに役立ちましたら、この回答に「受諾済み」と記入してください。 – Andersson

+0

アラートの終了または受諾? driver.accept()? – MhdFadhil

関連する問題