在 Windows 计算机上使用 Selenium WebDriver 处理文件上传
Selenium WebDriver 是一种用于自动化 Web 浏览器任务的流行工具。一项常见任务是上传文件,这在 Windows 计算机上尤其具有挑战性。
场景:Windows 文件上传
用户设置了一个场景,其中标准 Selenium使用 sendKeys() 进行文件上传的 WebDriver 方法不起作用。他们提供了屏幕截图,显示弹出文件选择窗口,但无法与之交互。
解决方案
用户已在 Stack Overflow 上发布并发现使用 Robot 类在文件选择窗口中模拟击键的解决方案。解决方案如下所示:
<code class="java">driver.findElement(By.id("uploadfile")).click(); Robot r = new Robot(); r.keyPress(KeyEvent.VK_C); // C r.keyRelease(KeyEvent.VK_C); r.keyPress(KeyEvent.VK_COLON); // : (colon) r.keyRelease(KeyEvent.VK_COLON); r.keyPress(KeyEvent.VK_SLASH); // / (slash) r.keyRelease(KeyEvent.VK_SLASH); // etc. for the whole file path r.keyPress(KeyEvent.VK_ENTER); // confirm by pressing Enter in the end r.keyRelease(KeyEvent.VK_ENTER);</code>
Robot 类通过按键输入指定的文件路径。这是一种“盲目”技术,因为 Selenium 不提供对文件选择对话框的直接访问。这种方法假设窗口打开后光标位于输入的文件名中。
替代方法
用户还提到了使用 Flash 的替代方法。然而,这涉及修改Flash应用程序的源代码并使用JavaScript来调用它。这是一种更复杂且不太可靠的方法。
以上是如何在 Windows 计算机上使用 Selenium WebDriver 处理文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!