如何使用Selenium webdriver从Windows上传文件

时间:2016-01-21 09:44:07

标签: java file selenium-webdriver

我正在尝试使用selenium WebDriver上传文件,

有一个流行窗口正在浏览'浏览'按钮,点击'浏览'它从windows打开文件。

http://i.stack.imgur.com/wHYES.png

{
      //Switch focus on pop window
      String popupHandle = driver.getWindowHandle();
      WebDriver popup;
      popup = driver.switchTo().window(popupHandle);

      //Click on 'Browse Files' button.
      Thread.sleep(5000);
      WebElement filebrowse = driver.findElement(By.id("browse-files"));
      filebrowse.sendKeys("C:/Users/logo.jpg");
 }

我想上传单个文件以及多个文件,还有其他方法可以从窗口中选择多个文件吗?

3 个答案:

答案 0 :(得分:0)

filebrowse.sendKeys( “文件:// C:/Users/logo.jpg”);

您需要提供绝对路径。

我检查了它的工作情况。

答案 1 :(得分:-1)

您的代码看起来很好。我假设您的定位器能够识别按钮,请先检查以关闭弹出窗口控制器转换为弹出窗口正确

现在问题是windows和linux / mac不同地考虑斜杠/

如果您正在使用Windows,请使用转发\,然后使用unix / mac使用/

实施例: -

对于Windows使用以下语法

filebrowse.sendKeys("C:\Users\logo.jpg");

也可以尝试

filebrowse.sendKeys("C:\\Users\\logo.jpg");

对于mac / linux使用以下语法

filebrowse.sendKeys("C:/Users/logo.jpg");

OR

filebrowse.sendKeys("C://Users//logo.jpg");

如果仍然无效,那么最好发布您的HTML代码,以便我们也可以检查您的定位器

希望它会对你有所帮助:)。

答案 2 :(得分:-2)

selenium webdriver不支持处理Windows对话框, 为此,有第三方工具可用 Sikuli和AutoIt
为你(通过查看你的形象)有两个选择

  1. 使用文本框上传
  2. 使用Windows对话框(为此你需要使用像:AutoIt,Sikuli这样的工具)
  3. 对于文本框,首先需要检查是否已启用键入任何文本,然后传递文件的路径。

    Driver.findElement(by.id("")).sendKeys("path of file");