我正在尝试使用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");
}
我想上传单个文件以及多个文件,还有其他方法可以从窗口中选择多个文件吗?
答案 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
为你(通过查看你的形象)有两个选择
对于文本框,首先需要检查是否已启用键入任何文本,然后传递文件的路径。
Driver.findElement(by.id("")).sendKeys("path of file");