3

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

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

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

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

谢谢拉古拉姆。

4

2 回答 2

1

Autois 仅适用于 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");
于 2012-05-04T17:32:40.160 回答
0

如果以前的方法不起作用您可以尝试下一个链。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/

于 2012-05-04T15:11:48.557 回答