在拖放UI中上传Selenium隐藏文件



我正在尝试使用selenium web驱动程序在以下输入中添加图像。

<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驱动程序异常,称"操作不安全"

我发现这个封闭的问题和我的相似。

尝试:

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

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

我发现了类似的问题通过selenium上传文件,但文件输入元素是隐藏的,但我的元素永远不可见。

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

请告诉我是否有人遇到过同样的问题,以及是如何解决的。

提前感谢

尝试将Input元素的"不透明度"设置为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方法。

如果有帮助的话,就饶了我吧!

如果您在一个页面上使用多个dropzone来定位dz隐藏输入时遇到问题,您应该这样做:

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

然后,您可以使用$(".dz hidden input one")

瞄准隐藏输入

最新更新