【问题标题】:Uploading file with @type='file' in IE11在 IE11 中使用 @type='file' 上传文件
【发布时间】:2016-05-09 07:14:10
【问题描述】:

以下代码在 Firefox 中运行良好,它在不打开文件上传窗口的情况下上传文件,但在 Internet Explorer 11 中 文件上传对话框打开。

假设驱动程序是一个健康的 WebDriver 实例:

WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']"));
fileInput.sendKeys("C:/path/to/file.jpg");

这个想法是直接将文件的绝对路径发送到您通常单击以获取模式窗口的元素 - 即 <input type='file' /> 元素。

为什么在 IE 11 中打开文件上传窗口以及如何解决此问题?

我需要在浏览器堆栈上测试脚本,所以它不应该在上传文件时打开文件对话框窗口。

【问题讨论】:

    标签: java selenium


    【解决方案1】:

    IE 总是打开这个对话框,因为它不能被禁用。但是,这并不意味着这会破坏您的测试。出于某种原因,Selenium 可以在此对话框中输入文件路径并仍然上传(不要问我为什么它可以在此对话框中输入路径,因为我不知道)。

    问题是在此对话框中输入路径时超时。 Selenium 可能太快了,并在正确打开对话框之前尝试输入路径。您需要做的就是增加此超时时间。为此,您可以将一个属性添加到您想要的功能中

    {
    'browserName': 'internet explorer',
    'ie.fileUploadDialogTimeout': 10000
    }
    

    这将在进入路径之前设置 10 秒的超时时间。

    【讨论】:

    • 感谢 RemcoW,没有其他方法可以禁用 IE 的 os 文件对话框窗口。在 Firefox 和 chrome 中上传时,此对话框被禁用。
    猜你喜欢
    • 2016-05-25
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2018-07-16
    相关资源
    最近更新 更多