Click()无法完成

时间:2013-04-16 21:14:42

标签: selenium webdriver autoit

步骤

  1. 点击Firefox中的“浏览”按钮
  2. 打开窗口对话框(浏览文件)
  3. 选择文件(AutoIt脚本)
  4. 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. 点击“浏览”按钮和
    5. 手动点击后继续执行
    6. 这适用于AutoIt。

      不工作

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

4 个答案:

答案 0 :(得分:4)

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

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

请参阅FAQ docs of Selenium WebDriver

答案 1 :(得分: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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

点击“下载Excel”链接后,我也遇到了同样的问题。为解决此问题,我使用JavascriptExecutor来恢复执行控制。

js.executeScript("arguments[0].click();", button);