当前位置: 首页 > 知识库问答 >
问题:

Chromedriver,Selenium-自动下载

桂高义
2023-03-14

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

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

然而,几天前,我的一个测试环境开始弹出一个单独的窗口,其中有一个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

共有1个答案

阴凯歌
2023-03-14

我不得不深入研究这一项的源代码--我找不到任何列出Chrome用户首选项全套的文档。

关键字是“plugins.plugins_disabled”:[“Chrome 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,
           "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)
 类似资料:
  • 问题内容: 我正在将Selenium 2.43.0与Python 2.7.5一起使用。在某一时刻,测试单击一个按钮,该按钮会将表单信息发送到服务器。如果请求成功,服务器将响应 1)成功的消息 2)合并了表格信息的PDF 我不在乎测试PDF,我的测试只是在寻找成功的消息。但是,PDF是服务器响应的包响应的一部分,我作为测试人员无法更改。 直到最近,使用Chromedriver从来都不是问题,因为Ch

  • 问题内容: 我无法开始用。 它永远不会 失败,但会失败: 我正在使用( virtualenv installation)和(64b)。 编辑 降级为: 但是,可悲的是,结果仍然相同。 知道为什么会这样吗? 问题答案: 好的,所以解决方案 有点奇怪 。 我将二进制文件从(已安装的位置)移动到,更新了符号链接,它现在可以正常工作! 与问题本身相比,以下两行代码可以解决问题: 现在,我可以运行以下Pyt

  • 问题内容: 我尝试设置Firefox以便自动下载文件。我在这里输入链接描述中做了建议,但是我无法使它工作。 这是我的代码: PDF仍在浏览器PDF查看器中打开。任何想法? 问题答案: 要禁用在Firefox中打开和下载pdf,请执行以下操作: 可以在此处找到MimeTipes列表。

  • 请帮帮我,我想向下滚动到菜的结尾,但它停止了。我尝试的代码在这里

  • 问题内容: 我正在使用Selenium Webdriver,Ruby 32位1.9.3,Chromedriver v2.9.248315,Chrome 38.0.2125.111 m和Jenkins 1.588的本地实例 Gems: cucumber (1.3.17),selenium-webdriver (2.43.0), watir-webdriver (0.6.11)(如果您认为有必要,可以

  • 我正在寻找一种使用chromedriver将不同文件保存到python中不同位置的方法。下面的代码将chrome设置为下载到文件夹路径,而不首先弹出下载位置对话框。单击并将一个文件下载到文件夹_路径(我跳过了粘贴这部分代码,因为我没有问题)后,我想将另一个文件下载到新的文件夹_路径。但是下面的代码给了我AttributeError:“WebDriver”对象没有属性“Chrome”。如果我可以在同