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

我正在尝试使用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);

以上是 使用selenium时如何处理Windows文件上传窗口 的全部内容, 来源链接: utcz.com/qa/407419.html

回到顶部