文件上传是许多 Web 应用程序中的常见功能。 Selenium WebDriver 提供了一种使用 sendKeys() 方法处理文件上传的方法。
以下代码演示了如何使用 Selenium WebDriver 处理文件上传:
<code class="java">WebElement fileInput = driver.findElement(By.name("uploadfile")); fileInput.sendKeys("C:/path/to/file.jpg");</code>
对于 Zamzar 网站,上面的代码应该可以完美运行。只需在输入字段中输入路径即可。
Uploadify 网站略有不同。上传按钮不是一个输入元素,而是一个Flash对象。由于没有用于处理 Flash 对象的 WebDriver API,我们需要采用不同的方法。
单击 Flash 元素后,将出现一个窗口。我们可以假设光标位于文件名输入中。如果没有,请使用 Alt N 导航到它。
要在输入字段中盲目输入路径,请使用 Robot 类:
<code class="java">Robot r = new Robot(); r.keyPress(KeyEvent.VK_C); // C r.keyRelease(KeyEvent.VK_C); // ... and so on for the rest of the path r.keyPress(KeyEvent.VK_ENTER); // Confirm by pressing Enter r.keyRelease(KeyEvent.VK_ENTER);</code>
As另一种方法是考虑修改 Flash 应用程序的源代码以使用ExternalInterface API 公开内部方法。这允许 JavaScript 调用内部 Flash 方法,然后 WebDriver 可以使用该方法来执行文件上传。
以上是如何使用 Selenium WebDriver 在 Windows 中处理文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!