加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Selenium+java - 通过Robot对象上传文件

发布时间:2020-12-14 14:38:30 所属栏目:百科 来源:网络整理
导读:思路: 1、将文件路径复制到剪切板 2、用robot对象模拟键盘操作即可 复制文件代码: public void setClipboardData(String data) { StringSelection stringSelection = new StringSelection(data); Toolkit.getDefaultToolkit().getSystemClipboard().setCon

思路:

1、将文件路径复制到剪切板

2、用robot对象模拟键盘操作即可

复制文件代码:

 public void setClipboardData(String data) {
        StringSelection stringSelection = new StringSelection(data);
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection,null);
    }

实现上传代码

package com.brower.demo;

import org.openqa.selenium.By;
 org.openqa.selenium.WebDriver;
 org.openqa.selenium.chrome.ChromeDriver;
 org.testng.annotations.AfterClass;
 org.testng.annotations.BeforeClass;
 org.testng.annotations.Test;

import java.awt.*;
 java.awt.datatransfer.StringSelection;
 java.awt.event.KeyEvent;
 java.io.IOException;

/**
 * @author rongrong
 */
class TestUploadByRobot {
    WebDriver driver;

    @BeforeClass
     beforeClass() {
        System.setProperty("webdriver.chrome.driver","driver/chromedriver.exe");
        driver =  ChromeDriver();
    }

    @Test
    void testUploadByRobot() throws AWTException {
        driver.get("file:///C:/Users/Administrator/Desktop/upload.html");
        driver.manage().window().maximize();
        //选择文件
        driver.findElement(By.id("upload")).click();
        setClipboardData("F:robotium-solo-5.6.1.jar");
        Robot robot =  Robot();
        robot.keyPress(KeyEvent.VK_TAB);
        robot.delay(100);
        robot.keyRelease(KeyEvent.VK_TAB);
        robot.keyPress(KeyEvent.VK_TAB);
        robot.delay(100);
        robot.keyRelease(KeyEvent.VK_TAB);
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.delay(100);
        robot.keyRelease(KeyEvent.VK_ENTER);
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.delay(100);
        robot.keyRelease(KeyEvent.VK_ENTER);

    }

    );
    }


    @AfterClass
     afterClass() {
        driver.quit();
    }

}

效果:

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读