获取"元素目前不可见,因此可能无法与"尝试使用隐藏输入上载文件时出错

时间:2014-09-24 13:53:16

标签: java selenium

我在尝试与隐藏文件输入进行交互时遇到问题。我得到例外"元素目前不可见,因此可能无法与"进行交互。

我尝试访问的元素的代码如下:

<div style="display: block; position: absolute; overflow: hidden; margin: 0px; padding: 0px; opacity: 0; direction: ltr; z-index: 21474; left: 615px; top: 271px; width: 105px; height: 32px; visibility: hidden;">
    <input style="position: absolute; right: 0px; margin: 0px; padding: 0px; font-size: 480px; font-family: sans-serif; cursor: pointer; z-index: 21480;" accept="image/*" multiple="" name="imgfile" type="file">
</div>

我可以使用以下方法找到元素:

findElement(By.xpath(&#34; // * [@名称=&#39; imgfile&#39;]&#34)); 但是我运行以下操作仍然无效:

JavascriptExecutor jse = (JavascriptExecutor)driver;
WebElement elem = driver.findElement(By.xpath("//*[@name='imgfile']"));
String js = "arguments[0].style.visibility = 'visible';";
jse.executeScript(js, elem);
elem.sendKeys("C:\\data.txt");

我尝试更改了很多样式属性,例如display =&#39; block&#39;例如,但它没有什么区别。

有什么想法吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

获取div元素,然后更改其可见性。

根据代码,你得到一个输入元素,而不是获取div元素,然后改变visibilty。

为div元素添加 id 属性并编写脚本以通过 document.getElementById 获取元素,并将其提供给JavascriptExecutor以更改可见性。