拖拽UI中的Selenium隐藏文件上传

时间:2014-09-12 11:01:40

标签: javascript selenium-webdriver

我正在尝试使用selenium web-driver在以下输入中添加图像。

<input type="file" multiple="multiple" class="dz-hidden-input" accept="image/gif,image/jpg,image/jpeg,image/png,application/zip" style="visibility: hidden; position: absolute; top: 0px; left: 0px; height: 0px; width: 0px;">

当使用sendKeys时,它给出了ElementNotVisible:当隐藏可见性时,元素当前不可见。

试图使用Java脚本设置值执行,它给了Web驱动程序异常,说“操作不安全”。

我发现this封闭式问题与我的相似。

试过:

executor.executeScript("arguments[0].style.visibility='visible';",fileInput);

executor.executeScript("arguments[0].style.display='block';", fileInput);

启用可见性但发送密钥失败并出现相同错误。

我发现了类似的问题Uploading a file through selenium but file input element is hidden,但我的元素永远不可见。

我尝试使用selenium IDE使用type命令。

如果有人遇到同样的问题以及如何解决这个问题,请告诉我。

先谢谢

2 个答案:

答案 0 :(得分:2)

尝试将Input元素的Opacity设置为1,然后使用SendKeys提供文件路径。可以使用以下代码设置不透明度:

executor.executeScript("arguments[0].style.visibility='visible';",fileInput);
executor.executeScript("arguments[0].style.height='200px';",fileInput);   
executor.executeScript("arguments[0].style.width='200px';",fileInput);

然后执行sendKeys方法。

Lemme,如果有帮助!

答案 1 :(得分:0)

如果您在一个页面上使用多个dropzones定位dz-hidden-input时出现问题,则应执行以下操作:

  init: function() {
    this.hiddenFileInput.className = "dz-hidden-input dz-hidden-input-one";
  }

然后你可以用$(“。dz-hidden-input-one”)

来定位隐藏的输入