【问题标题】:selenium webdriver python: opening chrome browser to run test case does not load the saved settings of the browserselenium webdriver python:打开chrome浏览器运行测试用例不加载浏览器保存的设置
【发布时间】:2012-12-12 13:26:59
【问题描述】:

我正在尝试在 Chrome 浏览器中运行 selenium 测试用例。在此之前,我已将 chrome 浏览器文件的默认下载位置设置为 f:/xyz

当 selenium 脚本运行时,单击链接下载文件 - 它下载到 chrome 的默认位置(c:/documents and settings/downloads),而不是我之前设置的 f:/xyz

如何解决这个问题?

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    这里的问题很可能是下载位置与特定的用户配置文件相关联,并且 Chrome 驱动程序遵循与 Firefox 驱动程序相同的模式,默认情况下,它使用完全干净的用户配置文件的副本每次运行时,Selenium 都不会获取您为用户设置的下载位置。在 Firefox 中,解决方案是创建一个自定义的 Firefox 配置文件,然后告诉 Selenium 使用它运行。我敢打赌 Chrome 驱动程序中有一个类似的功能。

    根据docs

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability("chrome.switches", Arrays.asList("--user-data-dir=/path/to/profile/directory"));
    WebDriver driver = new ChromeDriver(capabilities);
    

    是的,那是 Java,但它应该很容易翻译成 Python。另外,请注意文档说有一个关于能够设置自定义配置文件的已知错误。

    编辑:

    我想我找到了一个适合你的稍微有点老套的解决方案。

    1. 转到包含您正在运行的操作系统上的用户/主文件夹的主文件夹
    2. 在SYSTEM用户文件夹下,找到Chrome user data directory
    3. 打开首选项文件(它是原始文本,因此任何文本编辑器都可以使用)
    4. 在“下载”节点下,创建或修改“default_directory”节点为您想要的任何下载位置

    请注意,这些步骤假定 Selenium 实际上已在 SYSTEM 用户下至少运行过一次 Chrome。如果没有,您可以通过自己在 SYSTEM 用户下运行 Chrome 手动创建所需的目录,例如从终端。

    【讨论】:

    • yes - 没有在哪里能够找到 python + chrome 打开已配置下载位置的现有配置文件的示例。尝试了以下 - 但没有好的 opts = Options() opts.add_argument("--user-data-dir 'C:\Users\username\AppData\Local\Google\Chrome\User\ Data\Default'") self.驱动程序 = webdriver.Chrome(chrome_options=opts)
    【解决方案2】:

    当时做不到。来自官方 ChromeDriver Wiki http://code.google.com/p/selenium/wiki/ChromeDriver:

    已知问题 ChromeDriver 存在一些已知问题,如下所列:

    1. 只能检索设置 cookie 的名称和值(无域、路径等)
    2. 打字不适用于启用富文本的文档。
    3. 无法指定自定义配置文件
    4. HTML 5 API 未实现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      • 2013-04-11
      • 2012-04-08
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      相关资源
      最近更新 更多