升级到 Chromedriver 76 会导致警报自动关闭



我之前使用的是Chrome驱动程序版本74和Chrome浏览器版本74。在此期间,警报没有问题。当我的浏览器自动更新到版本 76 时,我确实将 Chrome 驱动程序版本替换为 76。

当我在更新后运行相同的脚本时,当浏览器在代码下方运行时,浏览器上的警报开始自动关闭(硒中 wait.py 的代码片段(。我确实在不同的PC上用驱动程序74和浏览器74重新测试了相同的代码,它工作正常。

我怀疑 chrome 更改了最新驱动程序中的警报行为并尝试使用 Chrome驱动程序选项中的以下语句,但不起作用。 "profile.managed_default_content_settings.弹出窗口":0,

弹出窗口在以下代码的"值 = 方法(self._driver("行被关闭。

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the 
return value is not False."""
screen = None
stacktrace = None
end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
raise TimeoutException(message, screen, stacktrace)

铬使用的选项:

self._chromeoptions = Options
self._chromeops = webdriver.ChromeOptions()
prefs = {"download.default_directory": mainpath + r"bindownload_files",
"profile.default_content_setting_values.geolocation": 1,
"download.prompt_for_download": False,
'credentials_enable_service': False,
'profile': {
'password_manager_enabled': False
},
"applicationCacheEnabled": True,
"safebrowsing": {"enabled": True, "malware": {"enabled": True}}}
self._caps = DesiredCapabilities.CHROME
self._chromeops.add_experimental_option("prefs", prefs)
self._caps.setdefault("pageLoadStrategy", "normal")
self._chromeops.add_experimental_option("excludeSwitches", ["ignore-certificate-errors", "enable-automation"])
self._chromeops.add_argument("--start-maximized")
self._chromeops.add_argument("--disable-plugins")
self._chromeops.add_argument("--disable-extensions")
self._chromeops.set_capability('unexpectedAlertBehaviour', "ignore")
self._chromeops.add_experimental_option("useAutomationExtension", False)

其他详细信息:

方法调用函数直到...

def wait_till_inactive_delay(self, xpath, delay=20):
xpath = self.generate_xpath_structure(xpath)
WebDriverWait(self.driver, delay, ignored_exceptions=    [NoSuchElementException]).until(expected_conditions.invisibility_of_element_located((By.XPATH, xpath)))

使用旧的chromedriver,当有警报并调用上述功能时,它将忽略并继续,但现在当浏览器中打开警报并调用上述方法时,警报将被关闭。

我希望 chrome 浏览器/驱动程序允许用户使用 switch_to_alert.accpet(( 接受弹出窗口,而不是关闭弹出窗口。

('unhandledPromptBehavior', "ignore"(

上述所需功能忽略了弹出窗口

相关内容

  • 没有找到相关文章

最新更新