【问题标题】:How to automate file upload in chrome using selenium?如何使用硒在chrome中自动上传文件?
【发布时间】:2016-08-16 06:36:40
【问题描述】:

在 Ubuntu 机器上,我尝试自动上传文件,但我无法在 Chrome 中使用 selenium 执行此操作。我尝试使用 Robot 类和普通的发送密钥方法。

请参考我的代码:

StringSelection select = new StringSelection("/home/manojnn/Desktop/OrderDetails.xlsx"); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(select,null);

     System.out.println("selection" +select);
     driver.findElement(By.xpath("//label[text()='Upload']")).click();
    Thread.sleep(3000);
    Robot robot = new Robot();
     Thread.sleep(1000);

      // Press Enter
     robot.keyPress(KeyEvent.VK_ENTER);

    // Release Enter
     robot.keyRelease(KeyEvent.VK_ENTER);

      // Press CTRL+V
     robot.keyPress(KeyEvent.VK_CONTROL);
     robot.keyPress(KeyEvent.VK_V);

    // Release CTRL+V
     robot.keyRelease(KeyEvent.VK_CONTROL);
     robot.keyRelease(KeyEvent.VK_V);
     Thread.sleep(1000);


     robot.keyPress(KeyEvent.VK_ENTER);
     robot.keyRelease(KeyEvent.VK_ENTER);

【问题讨论】:

标签: selenium


【解决方案1】:

您无需单击上传按钮并处理上传提示,只需将文件路径发送到适当的输入字段。尝试以下解决方案,如果它不起作用,请告诉我:

driver.findElement(By.xpath('//input[@type="file"]')).sendKeys("/home/manojnn/Desktop/OrderDetails.xlsx"); 

【讨论】:

  • 您无需处理操作系统原生弹出窗口!
【解决方案2】:

您可以使用 AUTOIT 等外部工具,并将其与 selenium 一起用于上传目的。试试这个链接 https://www.seleniumeasy.com/selenium-tutorials/upload-a-file-using-selenium-webdriver-with-autoit

【讨论】:

    【解决方案3】:

    对于文件上传,您需要在uploadfile 文本字段中直接传递文件路径。 使用贝洛 driver.findElement(By.xpath(uploadTextFiledElementId)).sendKeys("filepath");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2021-09-05
      • 2016-10-22
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多