美文网首页
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