gpt4 book ai didi

python - Chromedriver、Selenium - 自动下载

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:44 28 4
gpt4 key购买 nike

我正在使用 Selenium 2.43.0 和 Python 2.7.5。有一次,测试单击一个按钮,该按钮将表单信息发送到服务器。如果请求成功,服务器响应

1)一条成功的消息

2) 合并了表单信息的PDF

我不关心测试 PDF,我的测试只是寻找一条成功的消息。然而,PDF 是来自服务器的包响应的一部分,我作为测试人员无法更改。

直到最近,使用 Chromedriver 时这都不是问题,因为 Chrome 会自动将 pdf 下载到其默认文件夹中。

但是,几天前,我的一个测试环境开始弹出一个单独的窗口,其中包含 pdf 的“打印”屏幕,这使我的测试脱轨。

我不想也不需要这个对话框。如何使用 chromedriver 的选项以编程方式抑制此对话框? (相当于 about:config 中 FireFox 的 pdfjs.disable 选项)。

这是我目前绕过对话框的尝试,但它不起作用(通过“不起作用”不会禁用或抑制打印 pdf 对话框窗口):

    dc = DesiredCapabilities.CHROME
dc['loggingPrefs'] = {'browser': 'ALL'}

chrome_profile = webdriver.ChromeOptions()
profile = {"download.default_directory": "C:\\SeleniumTests\\PDF",
"download.prompt_for_download": False,
"download.directory_upgrade": True}
chrome_profile.add_experimental_option("prefs", profile)
chrome_profile.add_argument("--disable-extensions")
chrome_profile.add_argument("--disable-print-preview")

self.driver = webdriver.Chrome(executable_path="C:\\SeleniumTests\\chromedriver.exe",
chrome_options=chrome_profile,
service_args=["--log-path=C:\\SeleniumTests\\chromedriver.log"],
desired_capabilities=dc)

两个测试环境中的所有组件版本都相同:

Selenium 2.43.0、Python 2.7.5、Chromedriver 2.12、Chrome(浏览器)38.0.02125.122

最佳答案

我不得不深入研究 source code关于这个 - 我找不到任何列出全套 Chrome 用户首选项的文档。

关键是"plugins.plugins_disabled": ["Chrome PDF Viewer"]}

完整代码:

dc = DesiredCapabilities.CHROME
dc['loggingPrefs'] = {'browser': 'ALL'}

chrome_profile = webdriver.ChromeOptions()
profile = {"download.default_directory": "C:\\SeleniumTests\\PDF",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"plugins.plugins_disabled": ["Chrome PDF Viewer"]}
chrome_profile.add_experimental_option("prefs", profile)

#Helpful command line switches
# http://peter.sh/experiments/chromium-command-line-switches/
chrome_profile.add_argument("--disable-extensions")

self.driver = webdriver.Chrome(executable_path="C:\\SeleniumTests\\chromedriver.exe",
chrome_options=chrome_profile,
service_args=["--log-path=C:\\SeleniumTests\\chromedriver.log"],
desired_capabilities=dc)

有趣的是,一揽子命令 chrome_profile.add_argument("--disable-plugins") switch 没有解决这个问题。但无论如何,我更喜欢手术方法。

关于python - Chromedriver、Selenium - 自动下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26894071/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com