我正在Python上使用Selenium webdriver編寫一個網頁的自動化代碼。但是,在某個時候它要求Captcha。所以,我決定手動輸入captcha使用javascript對話框彈出。但是我的代碼的問題在於,爲了成功實現,它使用wait並在wait()之後自動接受警告框。而且,如果我按輸入驗證碼後輸入,這個錯誤被拋出在Selenium Python上處理javascript對話框
selenium.common.exceptions.UnexpectedAlertPresentException
這裏是我的代碼 -
def captcha():
driver.execute_script("var a = prompt('Enter Captcha', '');document.body.setAttribute('data-id', a)")
time.sleep(7)
driver.switch_to.alert.accept()
driver.find_element_by_id("captcha_code").send_keys(driver.find_element_by_tag_name('body').get_attribute('data-id'))
driver.find_element_by_id("captcha_code").send_keys(Keys.RETURN)
提高IT我試過這個代碼,其中一個while循環正在檢查是否存在Alert框,但它不起作用。
def captcha():
driver.execute_script("var a = prompt('Enter Captcha', '');document.body.setAttribute('data-id', a)")
while EC.alert_is_present():
time.sleep(1)
print("Alert Present")
try:
driver.switch_to.alert.accept()
except selenium.common.exceptions.NoAlertPresentException:
print("Error Encountered...")
continue
driver.find_element_by_id("captcha_code").send_keys(driver.find_element_by_tag_name('body').get_attribute('data-id'))
driver.find_element_by_id("captcha_code").send_keys(Keys.RETURN)
它始終打印 -
警報目前
並繼續打印此,即使我沒有存在提醒框很長一段時間。
任何幫助,將不勝感激。提前致謝。
? –
我正在使用Chrome Webdriver。 –