Javascript Selenium Python中的句柄警报

Javascript Selenium Python中的句柄警报,javascript,python,selenium,Javascript,Python,Selenium,在上传文件后,我要处理以下弹出警报。我使用了下面的代码,它抛出了下面的错误 回溯最近一次呼叫上次: 文件update.py,第45行,在 driver.switch_至.alert.accept TypeError:“警报”对象不可调用 为什么会这样?我处理过一个类似的警报,其中一个有一个取消按钮?以这种方式。在Python+selenium中也有用于执行脚本的JavaScript代码,但与当前问题无关: driver.switch_to_alert().accept() # deprecate

在上传文件后,我要处理以下弹出警报。我使用了下面的代码,它抛出了下面的错误

回溯最近一次呼叫上次: 文件update.py,第45行,在 driver.switch_至.alert.accept TypeError:“警报”对象不可调用

为什么会这样?我处理过一个类似的警报,其中一个有一个取消按钮?以这种方式。

在Python+selenium中也有用于执行脚本的JavaScript代码,但与当前问题无关:

driver.switch_to_alert().accept() # deprecated, but still works
driver.switch_to.alert.accept()
请注意,在第二行中,您不需要像在代码中那样调用alert,Python+selenium中提供了执行脚本的JavaScript代码,但它与当前问题无关:

driver.switch_to_alert().accept() # deprecated, but still works
driver.switch_to.alert.accept()
注意,在第二行中,您不需要像在代码中那样调用alert

警报框(尤其是甜警报)的问题在于它们有一个 延迟和硒太快了

对我有效的一个选项是:

while True:
    try:
        driver.find_element_by_xpath('//div[@class="sweet-alert showSweetAlert visible"]')
        break
    except:
        wait = WebDriverWait(driver, 1000)

confirm_button = driver.find_element_by_xpath('//button[@class="confirm"]')
confirm_button.click()
警报框(尤其是甜警报)的问题在于它们有一个 延迟和硒太快了

对我有效的一个选项是:

while True:
    try:
        driver.find_element_by_xpath('//div[@class="sweet-alert showSweetAlert visible"]')
        break
    except:
        wait = WebDriverWait(driver, 1000)

confirm_button = driver.find_element_by_xpath('//button[@class="confirm"]')
confirm_button.click()

在Selenium Python中处理警报的另一个选项是,如果不需要通知,则将它们一起消除

您可以将禁用通知的选项传递到webdriver浏览器

使用Chrome作为浏览器并带有以下选项的Python代码示例:

from selenium import webdriver 
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-notifications")
driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options) 

driver.get('https://google.com')
print("opened Google")
driver.quit()

在Selenium Python中处理警报的另一个选项是,如果不需要通知,则将它们一起消除

您可以将禁用通知的选项传递到webdriver浏览器

使用Chrome作为浏览器并带有以下选项的Python代码示例:

from selenium import webdriver 
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-notifications")
driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options) 

driver.get('https://google.com')
print("opened Google")
driver.quit()
可能的重复可能的重复