File 如何使用webdriver自动上载文件。

File 如何使用webdriver自动上载文件。,file,automation,webdriver,File,Automation,Webdriver,我正在尝试使用webdriver自动上传文件,我的HTML是 它的类型是file 使用firebug我得到了id,它与textbox和button的id相同 通过使用此命令getWebDriverObj().findElement(by.id(“fileupload”)).sendKeys(“code.txt”);我无法获取结果 有没有人遇到过这种情况,如果有,请你帮助我 谢谢 Raghuram.如果之前的方法不起作用 你可以试试下一个连锁店。 1.通过单击按钮调用文件选择对话框(使用webdr

我正在尝试使用webdriver自动上传文件,我的HTML是 它的类型是file

使用firebug我得到了id,它与textbox和button的id相同

通过使用此命令getWebDriverObj().findElement(by.id(“fileupload”)).sendKeys(“code.txt”);我无法获取结果

有没有人遇到过这种情况,如果有,请你帮助我

谢谢
Raghuram.

如果之前的方法不起作用 你可以试试下一个连锁店。 1.通过单击按钮调用文件选择对话框(使用webdriver方法click()或javascript“document.getElementById('id')。click()” 2.将控件发送给Autoit(或其他内容),Autoit将使用文件选择对话框(键入文件的地址,单击按钮) 例如:

        var Autoit = new AutoItX3();
        const string widowTitle = "File Upload";
        Autoit.WinWait(widowTitle, "File &name:", 10);
        Autoit.ControlSetText(widowTitle, "", "[CLASS:Edit; INSTANCE:1]", pathToFile);
        Autoit.ControlClick(widowTitle, "", "[CLASS:Button; INSTANCE:1]");
        Autoit.WinWaitClose(widowTitle, "File &name:", 10);

安装java和AutoIt仅适用于Windows

下面是一个更健壮的解决方案:

为此,您必须找到实际输入框的“id”(其中提供了文件路径),然后使用以下命令:

如果您使用的是WebDriverBackedElenium,则可以使用:

selenium.type(“locator”,即“/path/to/the/file”)


应该可以。你使用什么操作系统、浏览器(+版本)、Selenium版本和语言(嗯,这是一个愚蠢的问题——你的代码看起来像Java)呢?网页上有什么特殊的技术堆栈(例如Silverlight、Flash、asp.net等)?当你的代码运行时会发生什么,完全没有,或者它会引发异常?javascript
document.getElementById(“fileupload”).value=“code.txt”
会做什么?我使用windows7,browser=firefox(version-11)selenium-standalone-server-2.21.0.jar,language=java。使用Iframe不会引发任何异常。使用selenium.type命令可以正常工作。但我想知道如何在webdriver中使用。如果您使用Internet Explorer(或任何其他浏览器),它仍然不起作用吗?你绝对确定你正在尝试使用你想要上传的文件的绝对路径吗?浏览窗口需要绝对路径,而不是相对于当前java应用程序workdir的路径。然后我相信我们需要看到一个最小的测试用例。它是一个公开可见的站点吗?你能在出现问题了吗?我刚刚试着制作一个包含单个
元素的pge,它按预期工作-自己试试!
driver.findElement(By.id("upload")).sendKeys("/path/to/the/file");
driver.findElement(By.id("upload_button")).click();
selenium.click("upload_button");