Selenium 如何在无头模式下下载和最大化窗口?

醋精测试媛 · 2020年12月29日 · 最后由 lipenglo 回复于 2021年01月16日 · 2947 次阅读

当设置options.add_argument("--headless")时,设置以下指定下载路径之类的便失效了:

prefs = {'profile.default_content_settings.popups': 0,  # 防止弹窗
         'download.default_directory': dir_config.download_dir,  # 设置默认下载路径
         'profile.default_content_setting_values.automatic_downloads': 1}  # 允许多文件下载
options.add_experimental_option('prefs', prefs)

另外截图截出来的并不是窗口最大化时的图片,是初始窗口大小的。导致错误截图基本上看不出问题。

请教大家,如何在无头模式下下载和最大化窗口?

另外:
如何下载页面图片?
试过ActionChains(driver).context_click(driver.find_element_by_tag_name("img")).send_keys("v").send_keys(Keys.ENTER).perform()完全不行

共收到 6 条回复 时间 点赞

无头模式的下载没用到
窗口化倒是有遇到过类似问题 maximize 无效 使用--window-size=可以指定窗口尺寸

options.add_argument("--window-size=1920,1080")  # => 设置无头浏览器尺寸为1920.1080 

如何下载页面图片?

先从页面中拿到图片地址,通过 requests 库请求图片地址,然后写入到文件里

import requests
    r = requests.get('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')
    with open('123.png', 'wb') as f:
        f.write(r.content)
Dade 回复

谢谢。

幺叁叁 回复

已解决。谢谢。

醋精测试媛 关闭了讨论 12月30日 16:06
醋精测试媛 重新开启了讨论 12月31日 10:47
Dade 回复

抱歉,我发现了一个问题,这样设置后,浏览器的左上角会有一截距离,而右下角超出了屏幕可显示范围

在无头下也可以给定浏览器大小的,这里有个坑 如果某元素不在这个浏览器大小内显示到的话 会出现定位不到,我之前吃过个坑

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册