selenium add_argument 参数表:
.add_argument(‘–start-maximized’) # 最大化运行(窗口全屏),不设置取元素会报错
.add_argument(‘–disable-infobars’) # 禁用浏览器正在被自动化程序控制的提示
.add_argument(‘–incognito’) # 隐身模式
.add_argument(‘–hide-scrollbars’) # 隐藏滚动条,应用一些特殊页面
.add_argument(‘–disable-javascript’) # 禁用javascript
.add_argument(‘–blink-settings=imagesEnabled=false’) # 不加载图片,提升速度
.add_argument(‘–ignore-certificate-errors’) # 禁用扩展插件并实现窗口最大化
.add_argument(‘–disable-software-rasterizer’)
.add_argument(‘–disable-extensions’) # 禁用浏览器上现有的扩展
disable-popup-blocking禁用弹窗
make-default-browser设置Chrome为默认浏览器
version打印浏览器版本
.add_argument(‘–user-agent=”” ‘) # 设置请示头的User-Agent
.add_argument(‘–proxy-server=127.0.0.1:8080’) #设置代理
.add_argument(‘–headless’) # 浏览器不提供可视化页面
.add_argument(‘–disable-gpu’) # 禁用GPU加速 ,配合headless使用
.add_argument(‘–window-size=1280×1024’) # 设置浏览器分辨率(窗口大小)
本地跑你能看见浏览器有界面,但是生产环境(也就是线上)是无界面的,比如在centos和linux环境中,所以直接部署这个代码是没用的。后来鄙人在browser的配置中加入以下代码:
#生产环境
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--window-size=1920,1050') # 专门应对无头浏览器中不能最大化屏幕的方案
self.browser = webdriver.Chrome(chrome_options=chrome_options)
完美的解决了这个问题,否则你会发现一直出现如下的异常:selenium.common.exceptions.MoveTargetOutOfBoundsException
鄙人觉得应该所谓的无界面浏览器意思是真的没有界面,大小是0*0,但是能获取到页面的元素的,所以生产环境中你再通过相对坐标来点击肯定是不行的,因此要再配置里添加chrome_options.add_argument(‘–window-size=1920,1050’)。
近期评论