当前位置: 首页 > 知识库问答 >
问题:

如何使用selenium在chrome中自动上传文件?

隗昀
2023-03-14

在Ubuntu机器上,我尝试自动上传文件,但在使用selenium的Chrome无法做到这一点。我尝试了Robot类和普通发送键方法。

请参考我的代码:

StringSelection=new StringSelection(“/home/manojnn/Desktop/OrderDetails.xlsx”);工具箱。getDefaultToolkit()。getSystemClipboard()。设置内容(选择,空);

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

共有3个答案

罗学真
2023-03-14

对于文件上传,您需要在uploadfile文本字段中直接传递文件路径。使用贝洛驱动程序。findElement(By.xpath(uploadTextFiledElementId))。sendKeys(“文件路径”);

琴光亮
2023-03-14

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

康鹏云
2023-03-14

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

driver.findElement(By.xpath('//input[@type="file"]')).sendKeys("/home/manojnn/Desktop/OrderDetails.xlsx"); 
 类似资料:
  • 问题内容: 我认为,每个将Webdriver用于测试自动化的人都必须意识到其在Web开发中的巨大优势。 但是,如果文件上传是您的webflow的一部分,则会出现一个巨大的问题。它不再是测试自动化。浏览器的安全限制(调用文件选择)实际上使自动化测试成为不可能。 Afaik唯一的选择是让webdriver单击文件上传按钮,使线程hibernate,让开发人员/测试人员手动选择文件,然后执行其余的网络流

  • 问题内容: 谁能让我知道如何使用Java代码使用Selenium上传文件? 当我单击应用程序中的按钮时,它将在新窗口中打开,可以用来选择上传文件。Silverlight(C#)开发的浏览按钮。 问题答案: 首先确保输入元素可见 正如Mark Collin在此处的讨论中所述: 不要单击浏览按钮,它会触发操作系统级别的对话框并有效地停止测试。 相反,你可以使用: myUploadElement是该元素

  • 谁能让我知道如何通过Java代码使用Selenium上传文件? 当我点击应用程序中的按钮时,它会在新窗口中打开,我可以用它来选择上传文件。Silverlight(C#)开发的浏览按钮。

  • 我有一个ASP。NET文件上载控件,当您单击上载按钮选择要上载的文件时,该控件将打开一个窗口。但问题是,网络驱动程序无法识别窗口,因此无法选择要上载的文件。 我在stackoverflow中找到了许多使用sendkey输入文件路径的解决方案。我认为当你有html文件上传控制时,这是有效的。在我的情况下,我有ASP。NET文件上传控件,它没有文本框,我可以在其中使用sendkey输入文件路径。 我该

  • 我想使用硒下载chrome中的pdf。 我尝试了上述代码,但不起作用

  • 最近买了一台mac,能够毫无问题地运行Mozilla,但在安装Chrome扩展和运行硒时遇到了麻烦。有人能指导我在Mac Chrome上安装扩展和运行硒的过程吗?