當硒運行, 可以關閉和檢測窗口警報, 如果apear窗口警報? 我需要它,因爲窗口在web中隨機提示apear。
這是僞代碼當硒運行時,硒能夠關閉並檢測到窗口警報,如果窗口有警報?
try:
if window alert is apear:
context.driver.switch_to.alert().dismiss()
except NoAlertPresentException:
print('no alert')
當硒運行, 可以關閉和檢測窗口警報, 如果apear窗口警報? 我需要它,因爲窗口在web中隨機提示apear。
這是僞代碼當硒運行時,硒能夠關閉並檢測到窗口警報,如果窗口有警報?
try:
if window alert is apear:
context.driver.switch_to.alert().dismiss()
except NoAlertPresentException:
print('no alert')
正如您所說的警報隨機發生並且您無法知道它何時發生,那麼您應該使用execute_script()
在每次頁面更改或刷新時禁用警報發生,這意味着當頁面需要執行一次JavaScript時已更改爲禁用警報:
driver.execute_script("window.alert = function() { return true; }")
此Java腳本會覆蓋alert的功能,因此每次頁面加載時都需要執行一次。當它執行警告框時將永遠不會發生,直到頁面刷新。
希望它有幫助... :)
。如果解僱()。什麼是變化? –
@오은아은아然後返回false ... –
啊,我會嘗試它 –
能否請您試試這個:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
browser = webdriver.Firefox() //or Chrome("path to chromedriver.exe")
browser.get("url")
browser.find_the_element_by_id("someID")
try:
WebDriverWait(browser, 10).until(EC.alert_is_present(),
'Timed out')
alert = browser.switch_to_alert()
alert.accept()
except TimeoutException:
print "There is no alert window."
您可以修改10到任何時間延遲你的願望。
如果警報隨機發生一個任何行動,那麼它是如何處理它的代碼?正如OP所說...正如我所看到的,它只是處理如果警報發生後的URL發生了什麼?如果警報發生後,任何行動? –
@SaurabhGaur,好點,謝謝。我需要在我的答案中提出更多想法。如果accept()不是,則返回 –
此警報是否針對特定場景或任何隨機動作發生一次? –
是啊隨機apear –
好吧,那麼你需要通過使用JavaScript阻止提醒...嘗試提供的答案.. :) –