如何在没有Robot类的情况下使用Java中的Selenium Webdriver上传文件?

时间:2019-05-14 06:27:41

标签: linux selenium-webdriver file-upload action

我正在尝试使用Selenium WebDriver和Java在Linux OS中使用Chrome浏览器中的无头文件来上传文件。我尝试使用操作类,但无法在文件上传对话框中识别文件。

我不应该使用Robot类,因为Headless不支持它。

动作类

String currentDirectory = System.getProperty("user.dir") + File.separator + "Cube_Vik_407.step";

StringSelection ss = new StringSelection(currentDirectory);

System.out.println("Path:" + currentDirectory);

Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
driver.getDriver().switchTo().activeElement();
Thread.sleep(5000);

Actions builder = new Actions(driver.getDriver());
builder.sendKeys(Keys.ENTER)
       .keyDown(Keys.CONTROL)
       .keyDown(Keys.CONTROL).sendKeys(String.valueOf('\u0068'))
       .keyDown(Keys.CONTROL).sendKeys(String.valueOf('\u0056')).perform();

builder.release();
builder.sendKeys(Keys.ENTER).build().perform();

我希望可以从Linux OS的chrome浏览器上的“文件上传”对话框中成功选择并上传文件。

0 个答案:

没有答案