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

问题描述 投票:0回答:2

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

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

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

通过发送密钥,正确的按钮将被激活,文件上传窗口将按预期打开,但密钥是作为其他内容发送的,并且它出现在浏览器的左下角;不是文件上传窗口。请查看此链接,5 秒视频,准确了解我在说什么:https://evrenos-hotmail.tinytake.com/sf/MTcxNDY0N181Njg2OTY1

java selenium selenium-webdriver file-upload selenium-firefoxdriver
2个回答
0
投票

如果元素的类型是“文件”,您可以直接执行 fileInput.sendKeys("C:/Users/EvrenosCareer/Desktop/filename.pdf"),否则您必须使用 Robot 类上传文件。您不必单击 fileInput 即可发送该元素上的密钥。

通过Robot类上传文件:

 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);

0
投票

我上传sendkeys时,它给出了文件未找到,对于roboto类,它给出了org.openqa.selenium.InvalidArgumentException:无法单击元素

© www.soinside.com 2019 - 2024. All rights reserved.