2017-12-08 12 views
0

ChromeでSeleniumを使用して認証ポップアップを処理する際に問題が発生しています。 ":メッセージ:なし警告オープンselenium.common.exceptions.NoAlertPresentException":SeleniumでChromeアラートのポップアップが検出されない

代わりに、私はまた、次のコードを試してみました。これは、error--

を返し

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 

driver = webdriver.Chrome() 
driver.get('URL') 
time.sleep(5) 
alert = driver.switch_to_alert() 
alert.send_keys('Username') 
alert.send_keys(Keys.TAB) 
alert.send_keys('Password') 

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 

driver = webdriver.Chrome() 
driver.get('https://Username:[email protected]') 

2番目のコードは部分的に動作します。

Chromeでは、ユーザーはログインしていますが、ページは読み込まれません。空白のページのみが表示されます。空白のページが読み込まれると、ユーザーの資格情報を持たないURLのみを渡して正常に動作します。

Firefoxでは、ウェブページが完全に読み込まれます。

基本的に問題はChromeで発生します。

何か助けていただければ幸いです。

ありがとうございます!

+0

URLと一緒にユーザー名とパスワードを送信してみます。 –

+0

私はそれを試みた。私の質問に投稿した代替コードでは、URLと一緒にユーザー名とパスワードを送信しています。しかし、それは適切にウェブページをロードしません。 – Sameem

+1

[Python Selenium Alert - プロンプトのユーザ名とパスワードが重複している可能性があります](https://stackoverflow.com/questions/45328654/python-selenium-alert-prompt-username-and-password-is-not-working) ) – DebanjanB

答えて

0

試した2番目のコードは間違いなく間違いありません。

public void loginToSystem(String username,String password, String url){ 
driver = webdriver.Chrome() 

driver.get("https://"+username+":"+password+"@ "+URL); 
} 
+0

こんにちは、 ありがとうございます。 あなたが提案したコードは私のものと大きく異なっていません。あなたが変数を使用していることを除いて、私はそれらを直接渡していました。私のコードで何が間違っているかを親切に指摘してください。 また、あなたのコードで、 '@'の後ろに空白文字を付けましたか?私はそれを試してみたところ、スペースはhttps://の後に%20を挿入しました。 2番目のコードの問題は、Webページが正しく読み込まれていないことでした。空白の画面が表示されました。 一時的な回避策として、待機時間5秒後に再びURLを渡して正常に機能しました。 – Sameem

0

最初に警告を待ちます。

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

アラートが存在する場合は、フォワードを次のステップに移動します。 また、テストケースが失敗したときに警告が実際に表示されている場合は、スクリーンショットを確認してください。

+0

time.sleep()は、ポップアップが発生するまで十分な遅延を提供します。 はい、スクリプトが失敗したときに警告が表示されます。 – Sameem

+0

NoAlertPresentExceptionを出している場合は、アラートが存在しないことを意味します。 –

+0

あなたはこのアプローチをチェックするだけで、要素を検査し、そのxpathまたはidを見つけ、次のコード要素で試してみてくださいelement = driver.find_element_by_id( 'userName')element.send_keys( 'Username')これはあなたのために動作することを願っています。 –

関連する問題