当前位置: 首页 > 面试题库 >

使用selenium时如何处理Windows文件上传窗口

邰伟彦
2023-03-14
问题内容

我正在尝试使用Java为网站编写selenium测试。但是,在测试文件上传时遇到了一个问题。

当我单击文件上传按钮时,它将自动打开Windows文件上传。我有代码可以将文本成功地上传到上传框中,只是我无能为力,无法阻止Windows框自动显示,并且网站不自动打开Windows文件上传也不是真正的选择。通过研究这个主题,我了解到seleniumWebdriver无法解决这个问题。所以我的问题是:我可以简单地自动关闭上传窗口的方法是什么?

我已经尝试了Java机器人类,但没有成功。它一直等到上载窗口关闭,然后再执行我给出的任何命令(ALT-F4,单击xy位置等)

提前致谢

编辑:

wait.until(ExpectedConditions.elementToBeClickable(By.id(("addResourcesButton"))));
driver.findElement(By.id("addResourcesButton")).click();

//popup window comes up automatically at this point


try {
    Robot robot = new Robot();
    robot.mouseMove(875, 625);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (AWTException e) {
    e.printStackTrace();
}

//my attempt to move the mouse and click, doesn't move or click until after I close the windows upload box

String fileToUpload = "C:\\file.png";


WebElement uploadElement = driver.findElement(By.id("fileInput"));
uploadElement.sendKeys(fileToUpload);

//Takes the code and successfully submits it to the text area, where I can now upload it

问题答案:

您可以使用以下任一选项来进行无阻塞点击:

高级用户交互API(JavaDocs)

WebElement element = driver.findElement(By.whatever("anything"));
new Actions(driver).click(element).perform();

或JavaScript:

JavascriptExecutor js = (JavascriptExecutor)driver;

WebElement element = driver.findElement(By.whatever("anything"));
js.executeScript("arguments[0].click()", element);


 类似资料:
  • 问题内容: 在Stack Overflow上使用Selenium WebDriver上传文件时,我已经看到很多问题和解决方案。但是它们都不适合以下情况。 有人给出了以下解决方案 但是我仍然找不到窗口句柄。我该如何处理? 我正在寻找上述方案的解决方案。 请在以下任何网站上进行检查。 问题答案: 如果使用Zamzar网站,它应该可以正常运行。你无需单击该元素。你只需在其中输入路径。具体来说,这绝对可以

  • 问题内容: 我想使用PHP上传文件,但问题是我不知道要上传多少文件。 我的问题是,如果使用该如何上传文件? 我将仅添加“文件”框,并使用JavaScript创建更多要上传的文件输入,但是如何在PHP中处理它们呢? 问题答案: 请参阅:$ _FILES ,处理文件上传

  • 问题内容: 我最近刚开始玩go,所以我还是菜鸟,对不起,如果我犯了太多错误。我已经尝试解决了很长时间,但我只是不明白发生了什么。在我的main.go文件中,我有一个主要功能: 处理程序函数如下所示: 我知道这不是服务网站的最佳方法提交功能如下所示: 问题是,当执行Submit 函数时,它是并且是一个空字符串,如果r.FormFile返回以下错误,它将继续执行直到第一个: 我不明白为什么r.Meth

  • 如何使用selenium webdriver通过窗口提示从本地上传文件? 我想执行以下操作: 点击窗口上的“浏览”选项 从窗口提示符转到保存文件的本地特定位置 选择文件,然后单击“打开”以上传文件。

  • 问题内容: 用Flask处理超大文件上传(1 GB以上)的最佳方法是什么? 我的应用程序实际上需要多个文件,为它们分配一个唯一的文件号,然后根据用户选择的位置将其保存在服务器上。 我们如何将文件上传作为后台任务运行,以使用户在1小时内没有浏览器旋转,而是可以立即进入下一页? Flask开发服务器能够处理大量文件(50gb需要1.5个小时,上传速度很快,但将文件写入空白文件的速度却很慢) 如果我用T