我必须将Excel文件导入Web应用程序。要导入第一个,我必须单击导入btn,这将弹出另一个具有浏览btn的窗口。单击browsebtn将打开操作系统对话框。我想在此对话框中发送文件路径,然后选择文件并单击上传。 这是我正在使用的代码:
String path="C:/excelFiles";
Robot robot;
WebDriverWait wait=new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOf(importExcelbtn));
importExcelbtn.click();
browseBtn.sendKeys(path);
wait(4);
browseBtn.click();
wait(4);
StringSelection sel=new StringSelection(excelFileToImport);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel,null);
System.out.println("File to upload:"+ sel);
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
wait(3);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
okBtn.click();
} catch (AWTException e) {
e.printStackTrace();
}
问题是,我的代码打开了所有窗口,但它没有/不能在OS对话框中输入正确的文件路径,因此最终测试失败。请帮忙。
答案 0 :(得分:0)
单击“导入”按钮后,添加此代码。还有一个问题,在模态对话框打开后,哪个按钮聚焦如打开/取消。添加模态对话框的屏幕截图以获得更好的答案。
setClipboardData("C:\\excelFiles");
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.delay(5000);
public static void setClipboardData(String string)
{
StringSelection StrSelect = new StringSelection(string);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(StrSelect, null);
}