【问题标题】:How to automate Uploading A file using webdriver.如何使用 webdriver 自动上传文件。
【发布时间】:2012-05-13 17:14:22
【问题描述】:

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

使用 firebug 我得到了 id,它对于文本框和按钮是相同的。

通过使用这个命令 getWebDriverObj().findElement(By.id("fileupload")).sendKeys("code.txt");我无法获取结果。

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

谢谢 拉古拉姆。

【问题讨论】:

  • 应该可以。你使用什么操作系统、浏览器(+版本)、Selenium 版本和语言(嗯,这是一个愚蠢的问题——你的代码看起来像 Java)?网页上有什么特殊的技术栈(例如 Silverlight、Flash、asp.net 等)?当你的代码运行时会发生什么,什么都没有,或者它抛出异常? javascript document.getElementById("fileupload").value="Code.txt" 会做什么?
  • 我正在使用 windows7,浏览器 = firefox(version-11) selenium-standalone-server-2.21.0.jar,语言 = java。使用 iframe。它没有抛出任何异常。这适用于 selenium.type 命令。但我想知道如何在 webdriver 中使用。
  • 如果您使用 Internet Explorer(或任何其他浏览器),它仍然工作吗?
  • 您确定要使用要上传文件的绝对路径吗? Browse 窗口需要一个绝对路径,而不是相对于当前 java 应用程序 workdir 的路径。
  • 那么我相信我们需要看一个最小的测试用例。它是一个公开可见的网站吗?您可以在出现问题的地方制作一个最小的仅 html 页面吗?我只是尝试制作一个包含单个 <input type='file'> 元素的 pge,它按预期工作 - 自己试试吧!

标签: file automation webdriver


【解决方案1】:

仅适用于 Windows。

这是一个更强大的解决方案:

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

driver.findElement(By.id("upload")).sendKeys("/path/to/the/file");
driver.findElement(By.id("upload_button")).click();

如果您使用的是 WebDriverBackedSelenium,您可以使用:

selenium.type("定位器", "/path/to/the/file");

selenium.click("upload_button");

【讨论】:

    【解决方案2】:

    如果以前的方法不起作用 你可以试试下一个链。 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 http://code.google.com/p/autoitx4java/

    【讨论】:

      猜你喜欢
      • 2015-03-22
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 2023-03-06
      • 2011-09-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多