2016-06-16 5 views
2

を使用してセレンにアラート/ポップアップをテストするために、私は私が間違っているユーザー名とパスワードを入力すると、それは言ってポップアップ表示されます私の自動化とこだわっている「ログインすることができません。別のユーザー名を試してみてください」どのようにPythonの

def test_logonWrongUserName(self): 
    self.setUpClass() # Initialize the driver 
    self.sh.navigateToUrl("http://test.com") 
    self.sh.member_Login("Foo", "asd") 

アラートまたはポップアップ(アラートまたはポップアップウィンドウではないこと)をテストする必要があります。このウィンドウには、「ログインできません。別のユーザー名を試してください」というテキストがあります。それがテキストを見つけたら、テストパス。そうでなければ、テストは失敗しなければならない。

注:ただ、あなたがwait for the alert to be presentする必要があり、我々は警告/ポップアップウィンドウ

+0

これはブラウザのポップアップ/クラシックjsアラートですか?あなたはスクリーンショットを表示できますか?ありがとう。 – alecxe

+0

@alecxe画像を添付しました。申し訳ありませんが、ipをクロスアウトする必要があります。 – user3174886

答えて

6

を閉じるまで、私たちは、HTML DOMにアクセスすることはできません、追加したいあなたが期待text内部を閉じ/ acceptアラートを持って断言:

from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import TimeoutException 

wait = WebDriverWait(driver, 10) 
wait.until(EC.alert_is_present()) 

alert = driver.switch_to.alert 
assert "Unable to login. Try different username" in alert.text 
alert.accept() 
+0

私はこのエラーを受け取っています_> alert = self.sh.getDriver()。switch_to.alert() TypeError: 'Alert'オブジェクトは呼び出し可能ではありません – user3174886

+0

@ user3174886もちろん、申し訳ありません、私の間違いは今修正されました。 – alecxe

+0

それは働いた...ありがとうございます:) – user3174886