perl - 如何使用 Selenium::Remote::Driver Perl 包通过 Open Windows 在测试中上传文件

标签 perl selenium testing selenium-webdriver

以下是附加项目符号: 我可以使用以下代码获取我的“按钮”:

 $elem = $driver->find_element('//*[@id="file_uploader"]/div/div/div/div[1]/div[1]/div/span');
     $driver->mouse_move_to_location(element => $elem); # xoffset => x, yoffset => y
     $driver->click_ok('LEFT');
     $driver->pause(3000);

但是在那之后,我无法在出现的 Opened Window 中得到任何东西。如何上传文件?

PS:这里是我的开发者工具的截图。

In Blue

提前致谢!

最佳答案

Selenium 无法处理操作系统对话框。因此没有办法处理这个对话框。这意味着您需要在不打开文件的情况下上传文件。 幸运的是,Selenium 允许用户将文件路径发送到文件输入。这将上传文件。

为了让它工作,您首先需要找到输入元素而不是按钮。它看起来像:

<input type='file'>

找到该元素后,您可以将文件路径发送给它,就像将任何文本发送到文本字段一样。我不确定如何在 perl 中执行此操作,但在 Python 中你可以这样实现:

element.send_keys('path/to/file')

您自己可能知道 perl 的等价物是什么。

关于perl - 如何使用 Selenium::Remote::Driver Perl 包通过 Open Windows 在测试中上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36936634/

相关文章:

perl - 为什么在文件范围内用 "my"声明 Perl 变量?

c - Walkpat内存测试

linux - perl oneliner + 通过 perl oneliner 行从脚本中删除密码

mysql - 使用 Perl 脚本为非常大的文件 (60GB) 提高在 MySQL 中插入表的速度

macos - 使用 'git send-mail' ,但出现错误

python-3.x - Kiwi TCMS 的一个问题

java - 如何从 JUnit 启动 Google App Engine Java 开发服务器?

java - 我创建了一个页面对象模型,但我的登录页面为空。我该如何解决这个问题?

html - 切换到以前的 IFRAME Selenium Python

php - Selenium 测试失败 : xvfb-run: error: Xvfb failed to start