2015-03-05 2 views
0

После загрузки файла с использованием драйвера Selenium и Chrome, как мне получить имя файла?Как найти путь и имя файла, загруженного на PHP, с помощью веб-драйвера 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 Fatal error: Uncaught exception 'UnknownServerException' with message 'unknown error: cannot parse capability: chromeOptions from unknown error: unrecognized chrome option: download.default_directory

Возможно отношение: https://groups.google.com/forum/#!topic/macenterprise/cmSKIyzjQA8 https://github.com/facebook/php-webdriver/wiki/ChromeOptions

ответ

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); 
Смежные вопросы