Selenium 自动化上传文件问题

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

在调试时我发现我的测试由于卸载文件而失败。

我尝试了很多不同的定位器并检查了上传文件的绝对路径,但它只是不想上传文件!

如果您能检查此表格,那就太好了: http://tutorialsninja.com/demo/index.php?route=product/product&path=25_28&product_id=42

与问题相关的代码部分:

  String path = "C:\\Users\\username\\IdeaProjects\\selenium_bootcamp\\src\\resources\\image.jpg";

  @FindBy(how = How.XPATH, using = "//button[@id='button-upload222']")
public WebElement fileInputApplePage;

 public void uploadFileOnApplePage() {
    fileInputApplePage.sendKeys(path);
}
selenium-webdriver file-upload automation automated-tests absolute-path
1个回答
0
投票

您需要上传文件的输入字段类型是隐藏的,您应该将其更改为文件,以继续上传过程

 JavascriptExecutor executor = (JavascriptExecutor)driver;
 executor.executeScript("document.getElementById('input-option222').setAttribute('type', 'file')");

 WebElement input = driver.findElement(By.id("input-option222"));

 input.sendKeys("C:\\Users\\rober\\IdeaProjects\\selenium_bootcamp\\src\\resources\\image.jpg");

更新: 使用Robot框架上传

driver.findElement(By.id("button-upload222")).click();

  
StringSelection ss = new StringSelection("C:\\Users\\rober\\IdeaProjects\\selenium_bootcamp\\src\\resources\\image.jpg");

Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
        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);
© www.soinside.com 2019 - 2024. All rights reserved.