После загрузки файла с использованием драйвера 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
Я попробовал следующее, но он дал ошибку:
$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 Неустранимая ошибка: исключение uncaught "UnknownServerException" с сообщением "неизвестная ошибка: невозможно проанализировать возможность: chromeOptions от неизвестной ошибки: нераспознанная опция chrome: download.default_directory
Возможно, это актуально: https://groups.google.com/forum/#!topic/macenterprise/cmSKIyzjQA8 https://github.com/facebook/php-webdriver/wiki/ChromeOptions
Я изменил его на это, и он сработал. Ему не понравился путь \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);