1

脚步

  1. 单击 Firefox 中的“浏览”按钮
  2. 打开一个窗口对话框(浏览文件)
  3. 选择文件(AutoIt 脚本)

Java 代码

    driver.findElement(By.xpath("")).click();
    String path = "C:\\FileUpload.Av3.exe";
    driver.findElement(By.xpath (")).click(); - Browse Button in Web application

    try {
          Runtime.getRuntime().exec(path); - Execute AutoIT .exe file
    } catch (IOException e) {
          e.printStackTrace();
    }

在职的

  1. 在 Java 代码的第 2 行放置一个断点,然后
  2. 注释第 3 行和
  3. 单击浏览按钮,然后
  4. 手动点击后继续执行

这适用于 AutoIt。

不工作

在第 3 行之后,执行将不会继续,并且控件不会从 Firefox 传递回 Selenium。

4

4 回答 4

4

Selenium WebDriver 无法处理它。用于sendKeys在 File Input 元素中插入文件的本地路径:

String path = "C:\FileUpload.Av3.exe";
driver.findElement(By.xpath("/path/to/the/file/input/element")).sendKeys(path);

请参阅Selenium WebDriver 的 FAQ 文档

于 2013-04-16T22:24:34.717 回答
0

Click 调用是一个阻塞调用,在页面加载之前不会返回。由于单击会打开一个对话框,因此在关闭对话框之前单击不会返回。

要解决此问题,请在单独的线程中调用 Click,然后调用 AutoIt 脚本。AutoIt 脚本关闭对话框后,单击将返回,您的其余测试可以继续。

于 2013-05-18T20:23:10.343 回答
0

删除 try-catch 块并仅使用以下代码。让我知道它是否有效。

driver.findElement(By.xpath("")).click();
driver.findElement(By.xpath (")).click(); - Browse Button in Web application
String path = "C:\\FileUpload.Av3.exe";
Runtime.getRuntime().exec(path); - Execute AutoIT .exe file
于 2013-04-17T08:14:36.543 回答
0

单击“下载 Excel”链接后,我也遇到了同样的问题。为了解决这个问题,我曾经JavascriptExecutor获得执行控制权。

js.executeScript("arguments[0].click();", button); 
于 2018-01-03T08:05:15.107 回答