0

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

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

如何纠正这个?

4

2 回答 2

1

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

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

  1. 只能检索设置cookies的名称和值(没有域、路径等)
  2. 键入不适用于启用富文本的文档。
  3. 无法指定自定义配置文件
  4. HTML 5 API 未实现
于 2013-01-01T03:30:20.490 回答
1

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

根据文档

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

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

编辑:

我想我找到了一个对你有用的温和的 hacky 解决方案。

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

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

于 2012-12-12T14:07:18.910 回答