使用java中的Robot类进行照片上传

时间:2018-06-05 09:06:58

标签: java selenium automation

我使用的是mac机器,我正在尝试自动化照片上传方案。

这是一步: 1.点击"添加照片"网页中的元素 2.将弹出系统对话框进行选择 3.在系统对话框中选择照片后(双击图像或单击并单击"打开"按钮)然后 4.我将在网页上看到弹出窗口,其中显示所选照片的​​预览。 5.在弹出窗口中,我点击"上传"按钮。

我使用的机器人代码从我的桌面选择图像,但之后不做任何操作。

有什么建议吗?或者更好的方法吗?

   public photo_upload_page clickOnAddphoto() throws Exception {

        waitAndClickElement(addPhoto);

        Thread.sleep(1000);
        File file = new File("/Users/mohand/Desktop/Defect.jpg");
        StringSelection stringSelection = new StringSelection(file.getAbsolutePath());
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);

        Robot robot = new Robot();

        robot.keyPress(KeyEvent.VK_META);

        robot.keyPress(KeyEvent.VK_TAB);

        robot.keyRelease(KeyEvent.VK_META);

        robot.keyRelease(KeyEvent.VK_TAB);

        robot.delay(500);

//Open Goto window

        robot.keyPress(KeyEvent.VK_META);

        robot.keyPress(KeyEvent.VK_SHIFT);

        robot.keyPress(KeyEvent.VK_G);

        robot.keyRelease(KeyEvent.VK_META);

        robot.keyRelease(KeyEvent.VK_SHIFT);

        robot.keyRelease(KeyEvent.VK_G);

//Paste the clipboard value

        robot.keyPress(KeyEvent.VK_META);

        robot.keyPress(KeyEvent.VK_V);

        robot.keyRelease(KeyEvent.VK_META);

        robot.keyRelease(KeyEvent.VK_V);

//Press Enter key to close the Goto window and Upload window

        robot.keyPress(KeyEvent.VK_ENTER);

        robot.keyRelease(KeyEvent.VK_ENTER);

        robot.delay(500);

        robot.keyPress(KeyEvent.VK_ENTER);

        robot.keyRelease(KeyEvent.VK_ENTER);

        Thread.sleep(1000);

        waitAndClickElement(buttonUploadPhoto);

        return new photo_upload_page();
    }


}

1 个答案:

答案 0 :(得分:0)

好的,我只是想通了。我刚刚在第4步之后添加了以下代码几次并且它有效!

robot.keyPress(KeyEvent.VK_ENTER);