使用Java中断通过Selenium上传文件?

时间:2014-05-25 15:14:43

标签: java selenium selenium-webdriver

我试图中断一个看起来不可能的文件上传。在整个文件上传之前,似乎没有任何内容在elem.sendKeys("filename.txt")之后执行。此外,虽然可通过Firebug检查或手动测试,但没有任何按钮可点击。

通过单击取消文件上传按钮(手动进行测试时可单击)自动执行文件上载和中断会导致测试失败,并出现以下异常:ElementNotVisibleException: Element is not currently visible and so may not be interacted with

有什么方法可以强制执行中断吗?有没有其他方法帮助做同样的事情?我正在使用 Firefox 进行此测试。

HTML

<div style="padding-left: 40px;">
    <input id="upload" type="file" multiple="" label="File" name="upload[]" size="50">
</div>

Java

WebElement elem = driver.findElement(By.id("upload"));
elem.sendKeys("filename.txt");
driver.navigate().refresh();
System.out.println("hi");

1 个答案:

答案 0 :(得分:0)

我没有看到这样做的重点,但我们走了:

我相信你无法阻止Selenium中的elem.sendKeys()方法(实际上传)。 在输入文本上使用它来设置字符串与实际上传文件相同。只是Selenium尝试在输入上设置一些值。

单击即可点击已实施的取消上传按钮。

由于您已尝试过,此异常ElementNotVisibleException: Element is not currently visible and so may not be interacted with意味着该元素存在(Selenium已在DOM上找到它)但它不可见(该元素具有某些属性,如{ {1}} overflow: hidden等)
我最好的猜测是你应该解决这个问题并尝试点击你的按钮来实现停止上传的动作。