我使用下面的代码片段在Java中使用selenium上传文件。文件的路径被成功粘贴到对话框弹出窗口中,但是对话框窗口没有关闭,或者您说对话框窗口上的‘打开’按钮没有被按下。我认为这个“打开”按钮的焦点是以某种方式改变的。这将导致无法上传我的文件。请给我建议!
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
public static void setClipboardData(String string) {
StringSelection stringSelection = new StringSelection(string);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
}
And that is what i do, just after opening the "open" window:
setClipboardData("C:\\path to file\\example.jpg");
//native key strokes for CTRL, V and ENTER keys
Robot robot = new Robot();
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);
发布于 2015-01-23 19:02:00
您不需要使用那个Robot
类。如果你有文件上传按钮,并且你已经将其存储为WebElement
,你可以这样做:
//element is a WebElement of the upload button e.g.
WebElement element = driver.findElement(By.id("upload_btn"))
element.sendKeys("C:\\pathToFile\\example.jpg");
https://stackoverflow.com/questions/28116758
复制相似问题