Selenium继承webdriver.Chrome时如何添加Chrome options禁用alert弹窗
你可以直接在FacebookBot子类的__init__方法中构造ChromeOptions配置,再传入父类的初始化方法即可,不需要额外实例化Webdriver.Chrome,不会出现多启动Chrome实例的问题。
具体修改步骤
- 先构造
ChromeOptions实例,添加禁用弹窗、通知的相关配置参数 - 将配置完成的options对象作为参数传入父类
webdriver.Chrome的初始化方法
修改后完整代码
import facebook.constants as const from selenium import webdriver from selenium.webdriver.chrome.options import Options import time class FacebookBot(webdriver.Chrome): """a class to control and automate a facebook bot for srappping""" def __init__(self, teardown=False): self.teardown = teardown # 初始化Chrome配置对象 chrome_options = Options() # 禁用浏览器通知弹窗 chrome_options.add_argument("--disable-notifications") # 禁用弹窗拦截功能 chrome_options.add_argument("--disable-popup-blocking") # 配置浏览器默认禁止通知、弹窗权限申请 chrome_options.add_experimental_option("prefs", { "profile.default_content_setting_values.notifications": 2, "profile.default_content_setting_values.popups": 2 }) # 如需自动同意所有alert提示,可添加以下配置 # chrome_options.set_capability("unhandledPromptBehavior", "accept") # 将配置传入父类初始化 super(FacebookBot, self).__init__(options=chrome_options) self.implicitly_wait(20) def __exit__(self, *args) -> None: if self.teardown: self.quit() return super().__exit__(*args) def facebook_homepage(self): """navigating the facebook scrapper bot to the facebook home page.""" self.get(const.BASE_URL)
内容的提问来源于stack exchange,提问作者femiir
相关产品推荐
相关产品推荐

