selenium Selify-Chrome意外警报打开

hec6srdp  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(171)

运行下面的代码时,我一直得到以下代码:

while True:
time.sleep(5)
try:
    driver.get(URL)
    driver.execute_script("window.alert = function() {};")
    WebDriverWait(driver, 70).until(EC.visibility_of_element_located((By.XPATH, '//span[@data-testid="send"]'))).click()
except Exception as e:
    print(e)

我试着调试这个屏幕截图无头 selenium ,但我根本看不到任何警报。
我不断地得到:
警报文本:{警报文本:消息:意外警报打开:{警报文本:}

wnvonmuf

wnvonmuf1#

您必须先处理警报。然后点击。

try:
    WebDriverWait(driver, 5).until(EC.alert_is_present())  # this will wait 5 seconds for alert to appear
    alert = browser.switch_to.alert  # or self.driver.switch_to_alert() depends on your selenium version
    alert.accept()
except TimeoutException:
    pass
WebDriverWait(driver, 70).until(EC.visibility_of_element_located((By.XPATH, '//span[@data-testid="send"]'))).click()
jjhzyzn0

jjhzyzn02#

下面的行会指示浏览器显示一个警报,因为您会收到“意外警报”异常。

driver.execute_script("window.alert = function() {};")

当警告在浏览器中显示时,不能从Selify中截取屏幕截图,您将得到异常。但是,如果您想要处理警报异常,请删除上面的代码行并调用下面的方法代码,如下所示:def handleert():try:driver.Switch_to.lart.Accept()print(“Alert Accept”)Except:Print(“No Alert Found”)

相关问题