美文网首页
Selenium UC 已拦截弹出式窗口解决方法

Selenium UC 已拦截弹出式窗口解决方法

作者: 会爬虫的小蟒蛇 | 来源:发表于2022-07-14 16:00 被阅读0次

    先上代码:

    import undetected_chromedriver as uc
    
    driver = uc.Chrome()
    driver.get("https://zwfw.mnr.gov.cn:8090/bjgsKflyFags")
    driver.execute_script('document.querySelectorAll(".el-button.el-button--text")[0].click()')
    

    如果上述代码顺利执行,会模拟点击第一个公示按钮,并会打开一个新的Tag

    但实际情况是 浏览器弹出提示: 已拦截弹出式窗口

    顾名思义 我们打开新Tag的事件被拦截了

    解决方法:

    import undetected_chromedriver as uc
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("--disable-popup-blocking")
    driver = uc.Chrome(options=options)
    driver.get("https://zwfw.mnr.gov.cn:8090/bjgsKflyFags")
    driver.execute_script('document.querySelectorAll(".el-button.el-button--text")[0].click()')
    

    在创建浏览器的时候添加禁用弹出式窗口拦截的设置 即 --disable-popup-blocking

    问题到这里已经解决 除此以外我还整理了Chrome其他的启动参数

    #selenium启动Chrome配置参数问题
     
    #selenium启动配置参数接收是ChromeOptions类,创建方式如下:
     
    from selenium import webdriver
    option = webdriver.ChromeOptions()
     
     
    #创建了ChromeOptions类之后就是添加参数,添加参数有几个特定的方法,分别对应添加不同类型的配置项目。
     
    #设置 chrome 二进制文件位置 (binary_location)
    from selenium import webdriver
    option = webdriver.ChromeOptions()
     
    # 添加启动参数
    option.add_argument()
     
    # 添加扩展应用 
    option.add_extension()
    option.add_encoded_extension()
     
    # 添加实验性质的设置参数 
    option.add_experimental_option()
     
    # 设置调试器地址
    option.debugger_address()
     
     
    #常用配置参数:
    from selenium import webdriver
    option = webdriver.ChromeOptions()
     
    # 添加UA
    options.add_argument('user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"')
     
    # 指定浏览器分辨率
    options.add_argument('window-size=1920x3000') 
     
    # 谷歌文档提到需要加上这个属性来规避bug
    chrome_options.add_argument('--disable-gpu') 
     
     # 隐藏滚动条, 应对一些特殊页面
    options.add_argument('--hide-scrollbars')
     
    # 不加载图片, 提升速度
    options.add_argument('blink-settings=imagesEnabled=false') 
     
    # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
    options.add_argument('--headless') 
     
    # 以最高权限运行
    options.add_argument('--no-sandbox')
     
    # 手动指定使用的浏览器位置
    options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 
     
    #添加crx插件
    option.add_extension('d:\crx\AdBlock_v2.17.crx') 
     
    # 禁用JavaScript
    option.add_argument("--disable-javascript") 
     
    # 设置开发者模式启动,该模式下webdriver属性为正常值
    options.add_experimental_option('excludeSwitches', ['enable-automation']) 
     
    # 禁用浏览器弹窗
    prefs = {  
        'profile.default_content_setting_values' :  {  
            'notifications' : 2  
         }  
    }  
    options.add_experimental_option('prefs',prefs)
     
    driver=webdriver.Chrome(chrome_options=chrome_options)
     
     
    #浏览器地址栏参数:
     
    #在浏览器地址栏输入下列命令得到相应的信息
        about:version - 显示当前版本
     
      about:memory - 显示本机浏览器内存使用状况
     
      about:plugins - 显示已安装插件
     
      about:histograms - 显示历史记录
     
      about:dns - 显示DNS状态
     
      about:cache - 显示缓存页面
     
      about:gpu -是否有硬件加速
     
      chrome://extensions/ - 查看已经安装的扩展
     
    #image
     
    #其他配置项目参数
     
    –user-data-dir=”[PATH]” 
    # 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区
     
      –disk-cache-dir=”[PATH]“ 
    # 指定缓存Cache路径
     
      –disk-cache-size= 
    # 指定Cache大小,单位Byte
     
      –first run 
    # 重置到初始状态,第一次运行
     
      –incognito 
    # 隐身模式启动
     
      –disable-javascript 
    # 禁用Javascript
     
      --omnibox-popup-count="num" 
    # 将地址栏弹出的提示菜单数量改为num个
     
      --user-agent="xxxxxxxx" 
    # 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
     
      --disable-plugins 
    # 禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
     
      --disable-javascript 
    # 禁用JavaScript,如果觉得速度慢在加上这个
     
      --disable-java 
    # 禁用java
     
      --start-maximized 
    # 启动就最大化
     
      --no-sandbox 
    # 取消沙盒模式
     
      --single-process 
    # 单进程运行
     
      --process-per-tab 
    # 每个标签使用单独进程
     
      --process-per-site 
    # 每个站点使用单独进程
     
      --in-process-plugins 
    # 插件不启用单独进程
     
      --disable-popup-blocking 
    # 禁用弹出拦截
     
      --disable-plugins 
    # 禁用插件
     
      --disable-images 
    # 禁用图像
     
      --incognito 
    # 启动进入隐身模式
     
      --enable-udd-profiles 
    # 启用账户切换菜单
     
      --proxy-pac-url 
    # 使用pac代理 [via 1/2]
     
      --lang=zh-CN 
    # 设置语言为简体中文
     
      --disk-cache-dir 
    # 自定义缓存目录
     
      --disk-cache-size 
    # 自定义缓存最大值(单位byte)
     
      --media-cache-size 
    # 自定义多媒体缓存最大值(单位byte)
     
      --bookmark-menu 
    # 在工具 栏增加一个书签按钮
     
      --enable-sync 
    # 启用书签同步
    

    相关文章

      网友评论

          本文标题:Selenium UC 已拦截弹出式窗口解决方法

          本文链接:https://www.haomeiwen.com/subject/eoqcirtx.html