代码接收中的文件上传错误?
File uploading error in codeception?
我正在尝试将文件上传到几个输入元素。这些输入的 id 属性总是随机生成的,所以我从我的辅助函数收到了 RemoteWebElements 列表:
function getInputFields() {
$inputs = $this->getModule('WebDriver')->_findElements(['xpath' => "//input[@type='file']"]);
return $inputs;
}
然后,在 Cept 中,我尝试上传文件,将 ID 插入 XPath 字符串
$pass = $I->getInputFields();
$path_to_input1 = "//*[@id='" . $pass[0]->getAttribute('id') ."']";
$I->attachFile($path_to_input1, '1.jpg');
我很确定输入元素存在,而且我正确地得到了它的 ID,通过调试输出检查。
得到这个:
[ERROR - 2015-08-28T11:15:35.801Z] RouterReqHand - _handle.error - {"stack":"\tat _uploadFile ([native code])\n\tat \n\tat _postUploadFileCommand (:/ghostdriver/request_handlers/session_request_handler.js:212:30)\n\tat _handle (:/ghostdriver/request_handlers/session_request_handler.js:198:35)\n\tat _reroute (:/ghostdriver/request_handlers/request_handler.js:61:20)\n\tat _handle (:/ghostdriver/request_handlers/router_request_handler.js:78:46)","line":431,"sourceURL":""}
[Facebook\WebDriver\Exception\WebDriverException] JSON decoding of remote response failed.
Error code: 4
The response: 'Error - incompatible type of argument(s) in call to _uploadFile(); candidates were
_uploadFile(QString,QStringList)'
你能帮帮我吗,这里的陷阱在哪里?
因此,从 PhantomJS 切换到 Selenium 服务器可以修复该行为。
我在 github 上发现了这个问题,似乎会在下一版本的 PhantomJS 中修复:https://github.com/ariya/phantomjs/issues/12506
我正在尝试将文件上传到几个输入元素。这些输入的 id 属性总是随机生成的,所以我从我的辅助函数收到了 RemoteWebElements 列表:
function getInputFields() {
$inputs = $this->getModule('WebDriver')->_findElements(['xpath' => "//input[@type='file']"]);
return $inputs;
}
然后,在 Cept 中,我尝试上传文件,将 ID 插入 XPath 字符串
$pass = $I->getInputFields();
$path_to_input1 = "//*[@id='" . $pass[0]->getAttribute('id') ."']";
$I->attachFile($path_to_input1, '1.jpg');
我很确定输入元素存在,而且我正确地得到了它的 ID,通过调试输出检查。 得到这个:
[ERROR - 2015-08-28T11:15:35.801Z] RouterReqHand - _handle.error - {"stack":"\tat _uploadFile ([native code])\n\tat \n\tat _postUploadFileCommand (:/ghostdriver/request_handlers/session_request_handler.js:212:30)\n\tat _handle (:/ghostdriver/request_handlers/session_request_handler.js:198:35)\n\tat _reroute (:/ghostdriver/request_handlers/request_handler.js:61:20)\n\tat _handle (:/ghostdriver/request_handlers/router_request_handler.js:78:46)","line":431,"sourceURL":""}
[Facebook\WebDriver\Exception\WebDriverException] JSON decoding of remote response failed.
Error code: 4
The response: 'Error - incompatible type of argument(s) in call to _uploadFile(); candidates were
_uploadFile(QString,QStringList)'
你能帮帮我吗,这里的陷阱在哪里?
因此,从 PhantomJS 切换到 Selenium 服务器可以修复该行为。
我在 github 上发现了这个问题,似乎会在下一版本的 PhantomJS 中修复:https://github.com/ariya/phantomjs/issues/12506