13

この問題は、chromedriver を使用した Selenium Webdriver テストで発生します。Chrome ブラウザーを使用するとテストを正常に実行できますが、ヘッドレス モードでは同じテストを実行できません。

Jsアラートを処理できません。実際にスクリーンショットを撮っても、アラートがポップアップしないようです。

アラートのスクリーンショット

私はいくつかの回避策を試しました:

1) driver.window_handles--> 他のウィンドウが存在しないようです

2) driver.execute_script("window.confirm = function(){return true;}")--> そのスクリプトでは何も変わっていません

3)element = WebDriverWait(driver, 20).until(EC.alert_is_present())そしてもちろん明示的な待機

ブラウザモードでは、プレーンを使用します:

try:
    print driver.switch_to.alert.text
    driver.switch_to.alert.accept()
except NoAlertPresentException as e: 
    print("no alert")

ヘッドレスモードのアラートでこの問題を抱えている人はいますか?

  • クロームドライバー v.2.30.477691
  • Chrome バージョン 59.0.3071.115
4

4 に答える 4

0

誰かが NightwatchJS を使用してこの問題に遭遇した場合に備えて、これを追加したかっただけです。

上記の受け入れられた解決策は私にとってはうまくいきましたが、JSを使用すると、

driver.ExecuteJavaScript("window.confirm = function(){return true;}");

に変更する必要がありました

// this.api.perform() in my case is the same as browser.perform() 
this.api.perform(function () { this.confirm = function () { return true; }})
于 2018-06-26T21:24:05.677 に答える