使用 Cucumber JS 将文件上传到 WebdriverIO 中的隐藏字段
Upload file to hidden field in WedriverIO Using CucumerJS
你好,我需要使用 cucumberJS 和 webdriverIO 来自动化一个网站。为此,我需要上传一个文件,但该字段是隐藏的。例如:
<input type="file" id='uploadFile' style="display: none"'>
但是 webdriver 无法识别 UI 上的元素。
提前致谢...
我得到了这个 Issue.Using webdriverIO 的解决方案我们可以执行 javascript 将样式显示从 "none" 更改为 "block"。
client.execute(function() {
document.getElementById("element_id").style.display="block";
},function(err) {
client.uploadFile(localPath[,callback])
if(err){
console.log("Error "+err);
}
});
然后将文件上传到字段中,然后再次将显示更改为none。
在 webdriverIO v5 中,通过使用本地文件路径作为参数调用 .setValue()
将文件上传到 type="file"
的输入。不过,这似乎不适用于隐藏输入,因为 .setValue()
首先调用 .clearValue()
,这将抛出 Element could not be scrolled into view
。要解决此问题,请直接在元素上调用 .addValue()
:
input.addValue(filePath);
相关 API 文档:https://webdriver.io/docs/api/element/addValue.html
你好,我需要使用 cucumberJS 和 webdriverIO 来自动化一个网站。为此,我需要上传一个文件,但该字段是隐藏的。例如:
<input type="file" id='uploadFile' style="display: none"'>
但是 webdriver 无法识别 UI 上的元素。
提前致谢...
我得到了这个 Issue.Using webdriverIO 的解决方案我们可以执行 javascript 将样式显示从 "none" 更改为 "block"。
client.execute(function() {
document.getElementById("element_id").style.display="block";
},function(err) {
client.uploadFile(localPath[,callback])
if(err){
console.log("Error "+err);
}
});
然后将文件上传到字段中,然后再次将显示更改为none。
在 webdriverIO v5 中,通过使用本地文件路径作为参数调用 .setValue()
将文件上传到 type="file"
的输入。不过,这似乎不适用于隐藏输入,因为 .setValue()
首先调用 .clearValue()
,这将抛出 Element could not be scrolled into view
。要解决此问题,请直接在元素上调用 .addValue()
:
input.addValue(filePath);
相关 API 文档:https://webdriver.io/docs/api/element/addValue.html