以下是附加项目符号: 我可以使用以下代码获取我的“按钮”:
$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:这里是我的开发者工具的截图。
提前致谢!
最佳答案
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/