webdriver:在Internet Explorer中上传文件

时间:2015-04-10 11:01:32

标签: internet-explorer upload webdriver

有关如何在IE中上传文件的任何想法? 这不是我第一次遇到这样的问题,但我总是通过将隐藏的输入txt设置为可见

来解决它
JavascriptExecutor jse = (JavascriptExecutor) SelTestCase.driver;
WebElement element=SelTestCase.driver.findElement(By.xpath("//input[@type='file']"));
String js = "arguments[0].style.visibility = 'visible';"

但是这次我没有在输入中看到任何隐藏的风格,所以真的要知道如何做到这一点。 Firefox和Chrome工作正常,我只是发送路径,但IE警告元素不可见

有什么想法吗?

<div class="btn btn-primary ib-fileupload">
    <span>Upload File</span>
    <input id="channel-image-upload" class="upload pristine" type="file" accept=".jpg,.jpeg,.gif,.png"/>
</div>

2 个答案:

答案 0 :(得分:0)

尝试直接设置属性并单击上传(或触发该操作的任何内容)。并且,请确保您只尝试以下某种文件类型,因为这是所有允许的

  

.JPG,.JPEG,.GIF .PNG

String filePath = "the filepath with extension";
((JavascriptExecutor)driver).executeScript("document.getElementById('channel-image-upload').setAttribute('value', '"+filePath+"');");
driver.findElement(By.id("id of the button that uploads the file")).click();

答案 1 :(得分:0)

有时输入也可能超出页面范围。您可以设置样式属性,然后正常输入输入。

JavascriptExecutor jse = (JavascriptExecutor) SelTestCase.driver;
WebElement element=SelTestCase.driver.findElement(By.xpath("//input[@type='file']"));
//set the style
String js = "arguments[0].setAttribute('style','position: absolute; opacity: 0;');"