首页  >  文章  >  Java  >  当 sendKeys() 不起作用时,如何在 Selenium WebDriver 中处理文件上传?

当 sendKeys() 不起作用时,如何在 Selenium WebDriver 中处理文件上传?

Susan Sarandon
Susan Sarandon原创
2024-11-02 06:47:29627浏览

How to Handle File Uploads in Selenium WebDriver When sendKeys() Doesn't Work?

使用 Selenium WebDriver 处理 Windows 文件上传

Selenium WebDriver 提供了一种自动化文件上传的便捷方法,但在某些情况下,标准方法可能行不通。本文针对一种此类场景并提供了解决方案。

场景:

提供的元素不可单击,标准 sendKeys() 方法无法触发文件

解决方案:

对于 Zamzar 网站:

  • 使用 sendKeys() 直接输入将文件路径输入到输入字段中。

上传网站:

  • 单击 Flash 元素打开文件上传窗口。
  • 使用Robot类模拟键盘输入,输入文件路径。

详细说明:

Zamzar网站:

  • 文件输入字段是一个 HTML 元素。使用 sendKeys() 设置其值应该按预期工作。

上传网站:

  • 上传按钮是一个 Flash 对象,没有公开的 API
  • 单击该按钮将打开一个本机文件上传对话框,该对话框不受 WebDriver 的控制。
  • 假设对话框打开后文件名输入具有键盘焦点,您可以使用 Robot 来发送击键以输入文件路径。

替代解决方案 (Flash):

  • 修改 Flash 应用程序以使用 ActionScript 的ExternalInterface API 公开内部方法.
  • 使用WebDriver在网页中进行JavaScript调用来调用这些方法,模拟文件上传。

这种方案技术性更强,需要对Flash应用程序进行修改,但是它可以更好地控制文件上传过程。

以上是当 sendKeys() 不起作用时,如何在 Selenium WebDriver 中处理文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn