Согласно документам библиотеки, которую я использую, это должно работать, но это не так.
https://github.com/facebook/php-webdriver/wiki/Upload-a-file
Это ошибка
Finding ctl00_WorkSpaceContent_sourceFile
PHP Fatal error: Uncaught exception 'UnknownServerException' with message 'Expected there to be only 1 file. There were: 0
Это код
echo "Finding ctl00_WorkSpaceContent_sourceFile\n";
$input = $driver->findElement(WebDriverBy::id("ctl00_WorkSpaceContent_sourceFile"));
// set the file detector
$input->setFileDetector(new LocalFileDetector());
// upload the file and submit the form
$input->sendKeys($file);
echo "Finding Save & Return\n";
Это HTML
<input name="ctl00$WorkSpaceContent$sourceFile" type="file" id="ctl00_WorkSpaceContent_sourceFile" class="formrequired" size="62" onchange="javascript:this.className='formchanged';">
Там нет результатов в Интернете по ошибке, даже Google. DuckDuckGo, Google
Я видел некоторые связанные вопросы, но они были для отправки файлов для удаления серверов Selenium. Мой местный.
Мне пришлось отправить имя файла в виде массива, несмотря на предупреждение библиотеки.
$input->sendKeys(array($file));
Предупреждение PHP: is_file () ожидает, что параметр 1 будет правильным путем, массив указан в /cygdrive/c/Users/Chloe/workspace/Teads/php-webdriver/lib/remote/LocalFileDetector.php в строке 23
Я обновлю ссылку Wiki.
Других решений пока нет …