トップページ > Selenium API(逆引き) > 【Python】alert_is_present

【Python】alert_is_present・・・Alertが表示されるまで待機する

「alert_is_present」を実行することで、Alertが表示されるまで待機することが出来ます。

下記サンプルでは、指定したHTMLにページ遷移することで、HTML内のjavascriptを実行し、Alertを表示しています。そして「WebDriverWait」コンストラクタの引数に、対象driverと待ち時間(秒数)を指定して、インスタンスを作成しています。

次に作成されたインスタンスに対して「until」メソッドを実行しています。「until」メソッドは、引数に指定された条件が真になるまで待機するメソッドです。引数に指定するメソッドの「alert_is_present」は、「expected_conditions.alert_is_present」の形で用いることでアラートの表示を意味します。つまり、アラートが表示されるまで待つということになります。もしアラートが「WebDriverWait」コンストラクタで指定した待ち時間を越えても表示されない場合、exceptionが発生します。

ここで「until」メソッドの変わりに「until_not」メソッドを実行すると、引数に指定された条件が偽になるまで待機するという意味合いになり、アラートが非表示になるまで待つということになります。

※条件を指定して待機についてはこちら

説明

◆メソッド
  ・alert_is_present
◆使用形態
  ・expected_conditions.alert_is_present
◆備考
  ・最大待機時間を越えてもAlertが表示されない場合はExceptionが発生する
◆関連項目
  ・指定した要素が表示されるまで待機する
  ・指定した要素が非表示になるまで待機する

サンプル

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.alert import Alert
import time

#ChrmoeDriverサーバーのパスを引数に指定しChromeを起動
driver = webdriver.Chrome("D:\chromedriver")
#指定したURLに遷移する<図1>
driver.get("file://D:/AutoTest/alertIsPresent.html")
#指定したdriverに対して最大で10秒間待つように設定する
wait = WebDriverWait(driver, 10)
#Alertが表示されるまで待機するよう設定する
wait.until(expected_conditions.alert_is_present())
#3秒間待機する(Alertが表示されていることを確認するため)
time.sleep(3)
#AlertのOKボタンを押下する
Alert(driver).accept()

実行結果(OKボタンが押下される直前)

alertIsPresent

Java_alertIsPresent.html<図1>

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>alertIsPresent</title>
    </head>
    <body>
        <script>
            alert("Alert appeared!");
        </script>
    </body>
</html>

動画デモ

※字幕をONにすると解説のテロップが表示されます※

カテゴリー

Selenium導入

APIリファレンス

その他

ページ上部へ戻る
トップページ > Selenium API(逆引き) > 【Python】alert_is_present
Copyright © 2016- Seleniumクイックリファレンス All Rights Reserved