代码中的文件上传错误?

时间:2015-08-28 12:20:02

标签: php testing codeception

我正在尝试将文件上传到几个输入元素。这些输入的id属性总是随机生成,所以我从我的帮助函数中收到一个RemoteWebElements列表:

StringBuffer output = new StringBuffer();
Process p = null;
try {
    p = Runtime.getRuntime().exec(cmdtest);
    p.waitFor();
    BufferedReader reader =
        new BufferedReader(new InputStreamReader(p.getInputStream()));

    String line = "";
    while ((line = reader.readLine())!= null) {
            output.append(line + "\n");
    }

} catch (Exception e) {
        e.printStackTrace();
}

然后,在Cept中我试图上传文件,将ID插入XPath字符串

function getInputFields() {
    $inputs = $this->getModule('WebDriver')->_findElements(['xpath' => "//input[@type='file']"]);
    return $inputs;
 }

我非常确定输入元素是否存在,并且我正确获取其ID,并通过调试输出进行检查。 得到这个:

$pass = $I->getInputFields();
$path_to_input1 = "//*[@id='" . $pass[0]->getAttribute('id') ."']";
$I->attachFile($path_to_input1, '1.jpg');

你能帮帮我,这里的陷阱在哪里?

1 个答案:

答案 0 :(得分:0)

因此,从PhantomJS切换到Selenium服务器修复了这种行为。

我在github上发现了这个问题,似乎可以在下一版本的PhantomJS中修复:https://github.com/ariya/phantomjs/issues/12506