2012-12-12 125 views

回答

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. 下的系统用户文件夹下运行的OS用户的/ home文件夹,主文件夹,找到Chrome user data directory
  3. 打开Preferences文件(它的原始文本,所以任何文本编辑器将工作)
  4. 在“下载”节点,创建或修改“default_directory”节点是任何你想要的下载位置

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

+0

是的 - 没有哪里能找到python + chrome打开已配置下载位置的现有配置文件的示例。尝试以下 - 但没有好\t \t opts =选项() \t opts.add_argument(“ - user-data-dir'C:\ Users \ username \ AppData \ Local \ Google \ Chrome \ User \ Data \ Default '“) self.driver = webdriver.Chrome(chrome_options = opts) – user83969

1

当时无法完成。从官方ChromeDriver维基在http://code.google.com/p/selenium/wiki/ChromeDriver

已知问题 有与ChromeDriver已知问题,下面列出了一把:

  1. 只能检索名称和一组Cookie值(无域,路径,等等)
  2. 键入不支持启用富文本的文档。
  3. 无法指定自定义配置文件
  4. HTML 5 API实现
相关问题