如何使用 Selenium WebDriver 处理 Firefox 上传文件 window - Java

How to handle Firefox Upload File window with Selenium WebDriver - Java

我知道这个主题是重复的,但是,我也应用了其他解决方案,结果我在将正确的密钥发送到正确的文件上传位置时遇到了问题 window。

我已使用这段代码打开并发送密钥以上传文件:

WebElement fileInput = driver.findElement(By.id("upload-resume-button"));
fileInput.sendKeys("C:/Users/EvrenosCareer/Desktop/filename.pdf");

通过发送密钥,正确的按钮被激活,文件上传 window 按预期打开,但密钥是以其他方式发送的,它出现在浏览器的左下角;不是文件上传 window。请查看这个 link 5 秒的视频,以准确了解我在说什么:https://evrenos-hotmail.tinytake.com/sf/MTcxNDY0N181Njg2OTY1

如果元素的类型是"file",你可以直接做fileInput.sendKeys("C:/Users/EvrenosCareer/Desktop/filename.pdf"),否则你必须上传文件使用 机器人 class。您不必单击 fileInput 即可在该元素上发送密钥。

通过机器人上传文件class:

 WebElement element = driver.findElement(By.id("upload-resume-button"));
 element.click();
StringSelection stringSelection = new StringSelection("path to File");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
 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);