使用Selenium和Chrome驱动程序下载文件后,如何获取文件名?
这个网站避免了这个问题,但给出了简单案例的例子: http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/
我的链接是一个JavaScript链接,弹出一个新窗口并自动下载文件,文件名在服务器上动态生成。
此网站建议更改下载位置,但对于Firefox: http://elementalselenium.com/tips/2-download-a-file
这列出了所有命令行选项,但没有用于设置下载过滤器: http://www.ericdlarson.com/misc/chrome_command_line_flags.html
这个问题表明您可以更改目录,但答案是Java,它不适用于PHP: Chrome Web Driver download files
我尝试了以下操作,但它出错:
$options = new ChromeOptions();
$options->setExperimentalOption('download.default_directory', '\\temp');
$capabilities = DesiredCapabilities::chrome(); // htmlUnitJS()
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
PHP致命错误:未捕获的异常' UnknownServerException'带有消息'未知错误:无法解析功能:chromeOptions 来自未知错误:无法识别的chrome选项:download.default_directory
可能相关: https://groups.google.com/forum/#!topic/macenterprise/cmSKIyzjQA8 https://github.com/facebook/php-webdriver/wiki/ChromeOptions
答案 0 :(得分:0)
我将其更改为此并且有效。它不喜欢\temp
路径,它想要一个关联数组。
$options = new ChromeOptions();
$prefs = array('download.default_directory' => 'c:/temp/');
$options->setExperimentalOption('prefs', $prefs);
$capabilities = DesiredCapabilities::chrome(); // htmlUnitJS()
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = RemoteWebDriver::create($host, $capabilities, 5000);