如何在 PHP 中使用 Selenium 上传文件?预计只有 1 个文件。有:0

How do I upload a file in Selenium in PHP? Expected there to be only 1 file. There were: 0

根据我正在使用的库的文档,这应该有效,但事实并非如此。 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 Warning: is_file() expects parameter 1 to be a valid path, array given in /cygdrive/c/Users/Chloe/workspace/Teads/php-webdriver/lib/remote/LocalFileDetector.php on line 23

我会更新 Wiki link。