selenium操作webupload进行文件上传
selenium操作webupload进行文件上传
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
public class UploadFileRPA {
public static void main(String[] args) {
webuploader("E:\\lspt\\f2ud.jpg"
,"d:\\Users\\Pictures\\banner.jpg"
//,"E:\\lspt\\临时\\2am7.jpg"
,"d:\\Users\\Pictures\\view_123.pdf"
,"E:\\lspt\\0\\2a4c_1616552975916.jpg"
,"d:/Users/Pictures/view_123.pdf"
);
}
public static void webuploader(String... filePaths){
System.setProperty("webdriver.chrome.driver","C:\\windows\\chromedriver.exe");
//创建无Chrome无头参数
ChromeOptions chromeOptions=new ChromeOptions();
//chromeOptions.addArguments("-headless");
WebDriver browser = new ChromeDriver(chromeOptions);
browser.get("http://fex.baidu.com/webuploader/getting-started.html");
WebElement uploaderWE = browser.findElement(By.xpath("//*[@id=\"picker\"]/div[2]"));
for (String filePath:filePaths) {
uploaderWE.click();
try {
Thread.sleep(5000);
//指定文件路径
StringSelection sel=new StringSelection(filePath);
//将图片复制到剪切板上
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel, null);
//新建robot类
Robot robot=new Robot();
Thread.sleep(1000);
//按下回车,释放回车,(可有可无,有:选中文件,无:直接将文件路径复制到搜索框里)
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
//按下ctril v,拷贝文件
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
//释放ctril v
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
//按下回车,释放回车,确定
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.delay(500);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
注意:文件路径使用反斜杠\进行处理,否则会报错。