作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 Robot Framework 和 Java 从我的项目根文件夹上传文件。当弹出窗口打开时,根文件路径被发送到弹出窗口,但弹出窗口永远不会关闭以提交文件。如果我将文件路径更改为桌面,弹出窗口会打开,桌面文件路径已提交,弹出窗口关闭并提交文件。
这是我的机器人类
package utils;
import static java.awt.event.KeyEvent.*;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class RobotWrite {
private Robot robot;
public RobotWrite() throws AWTException {
this.robot = new Robot();
}
public void type(CharSequence characters) throws AWTException {
int length = characters.length();
for (int i = 0; i < length; i++) {
char character = characters.charAt(i);
type(character);
}
}
public void type(char character) throws AWTException {
switch (character) {
case 'a': doType(VK_A); break;
case 'b': doType(VK_B); break;
.........
.........
case '?': doType(VK_SHIFT, VK_SLASH); break;
case ' ': doType(VK_SPACE); break;
default:
throw new IllegalArgumentException("Cannot type character " + character);
}
}
private void doType(int... keyCodes) {
doType(keyCodes, 0, keyCodes.length);
}
private void doType(int[] keyCodes, int offset, int length) {
if (length == 0) {
return;
}
robot.keyPress(keyCodes[offset]);
doType(keyCodes, offset + 1, length - 1);
robot.keyRelease(keyCodes[offset]);
}
}
还有我设置路径的调用方法..
public static void Robotwrite() throws Exception{
try{
RobotWrite rw = new RobotWrite();
rw.type("C:\\workspace\\project\\src\\main\\resources\\data\\ExampleCV.docx"); //doesnt work
//rw.type("C:\\Users\\Desktop\\ExampleCV.docx"); //works
Robot r = new Robot();
r.keyPress(VK_ENTER);
r.keyRelease(VK_ENTER);
}catch (Exception e){
Log.error("Could not write");
throw(e);
}
}
最佳答案
通常您可以通过将文件路径发送到网站的输入元素(例如上传按钮)来解决此问题。
关于java - 从项目目录上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34828861/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!