selenium修改chromeOption参数-下载前询问每个文件的保存位置

简介

selenium启动chrome时有个options可以设置chrome的属性。其实其他浏览器也有。
selenium启动时修改文件下载路径:(来自:https://www.cnblogs.com/linwenbin/p/10361986.html) 跳转

from selenium import webdriver
import time

def set_chrome_pref():
    chromeOptions = webdriver.ChromeOptions()
    prefs = {"download.default_directory":"D:\\"}
    chromeOptions.add_experimental_option("prefs", prefs)
    driver = webdriver.Chrome(chrome_options=chromeOptions)

需求

这样确实能修改文件下载路径,但是我下载的时候,更希望直接命名我的文件名和下载位置,所以就需要打开一个开关:下载前询问每个文件的保存位置 (如下图)
在这里插入图片描述

解决方案1

首先,我想到的就是F12,然后找到该按钮的js,或者其值,如果没有打开,就去打开。
真别说,让我找到了。
打开chrome,chrome://settings,这个地址就是设置地址。然后执行以下js,就能打开关闭

document.getElementsByTagName('settings-ui')[0].shadowRoot.getElementById('container').children[1].shadowRoot.children[11].shadowRoot.getElementById('advancedPage').children[4].children[0].shadowRoot.getElementById('pages').children[0].children[1].shadowRoot.getElementById('outerRow').children[3].checked

其值为true,就是打开了。为false,就是关闭了。

document.getElementsByTagName('settings-ui')[0].shadowRoot.getElementById('container').children[1].shadowRoot.children[11].shadowRoot.getElementById('advancedPage').children[4].children[0].shadowRoot.getElementById('pages').children[0].children[1].shadowRoot.getElementById('outerRow').children[3].click()

这个就是点击按钮的js了,其实跟查询状态的元素时一个,只不过,一个是 .checked,一个是 .click()

解决方案2

执行js虽说行,每次还有检查,势必会浪费时间。从chrome的一个配置文件里,找到了chrome的设置项,这个就可以在selenium开启chrome时直接加上参数。
文件地址:C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Preferences
文件没有扩展名。其内容就是一个json,格式化后如下:
在这里插入图片描述
内容很长,截图不全。其中有一个项,决定了开关。如下图:

在这里插入图片描述
selenium启动chrome时,增加扩展属性。可以改变这个按钮。具体代码如下:

from selenium.webdriver.chrome.webdriver import WebDriver as WebDriver_chrome
from selenium.webdriver.chrome.options import Options as Options_chrome

prefs = {"download.prompt_for_download": True}
options = Options_chrome()
options.add_experimental_option("prefs", prefs)
web_driver = WebDriver_chrome(executable_path="chromedriver.exe", chrome_options=options)
web_driver.maximize_window()
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值