簡體   English   中英

機器人類 - KeyEvent 無法將文檔上傳到 KeyEvent.VK_V 處的 windows 文件夾

[英]Robot class- KeyEvent fails to upload document to the windows folder at KeyEvent.VK_V

我正在使用 selenium 上傳文檔的特定場景。 在多次失敗后,我認為自己要調試代碼。 這是我的代碼和錯誤。

public void uploadFile(String imagePath) {
        StringSelection stringSelection = new StringSelection(imagePath);
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        clipboard.setContents(stringSelection, null);

        Robot robot = null;

        try {
            robot = new Robot();
        } catch (AWTException e) {
            e.printStackTrace();
        }

        robot.delay(250);

        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.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
The below happens where the selected path gets printed in the code right next to Vk.Control
  C:\SAF\GIT\TestImage\Tests.docx       robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_CONTROL);

請讓我知道是否有任何解決方法?

保持 window 最大化,

  before robot.delay(250);
  driver.manage().window().maximize();

如果需要在 keyevents 之后添加一點延遲,如下所示

    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.delay(50); // it will slow down keyevent renderence and synchronize.
    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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM