我正在尝试在 Chrome 浏览器中运行 selenium 测试用例。在此之前,我已将 chrome 浏览器文件的默认下载位置设置为 f:/xyz
当 selenium 脚本运行时,单击链接以下载文件 - 它下载到 chrome 的默认位置(c:/documents and settings/downloads),而不是我之前设置的 f:/xyz
如何纠正这个?
我正在尝试在 Chrome 浏览器中运行 selenium 测试用例。在此之前,我已将 chrome 浏览器文件的默认下载位置设置为 f:/xyz
当 selenium 脚本运行时,单击链接以下载文件 - 它下载到 chrome 的默认位置(c:/documents and settings/downloads),而不是我之前设置的 f:/xyz
如何纠正这个?
当时是做不到的。来自http://code.google.com/p/selenium/wiki/ChromeDriver的官方 ChromeDriver Wiki :
已知问题 ChromeDriver 存在一些已知问题,如下所列:
这里的问题很可能是下载位置与特定的用户配置文件相关联,并且 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 解决方案。
请注意,这些步骤假定 Selenium 实际上已在 SYSTEM 用户下至少运行过一次 Chrome。如果没有,您可以手动创建所需的目录,方法是自己在 SYSTEM 用户下运行 Chrome,例如从终端。