我的场景是单击网站上的图标打开文件浏览器。是否可以将图像附加到规范中打开的文件浏览器窗口。我的配置是 Docker、Capybara、Selenium 驱动程序。我正在 headless 和非 headless 浏览器 (Chrome) 上进行测试
最佳答案
文件输入的问题是实际的 <input type="file" ...>
元素通常被隐藏,然后在页面上添加一个按钮来触发文件选择。 Capybara 不会与不可见元素交互,因为用户无法交互,不幸的是,一旦显示文件选择对话框(系统对话框),浏览器就不再对其进行任何控制,因此无法自动化。解决方法是不要单击打开文件选择的按钮,而是暂时使 <input type="file" ...>
元素在页面上可见,以便可以与之交互。为此,Capybara 提供了一个 make_visible
选项,如文档中所示 - https://www.rubydoc.info/github/teamcapybara/capybara/Capybara/Node/Actions#attach_file-instance_method 。
attach_file('name, id, or label text of field', file_to_attach, make_visible: true)
关于ruby-on-rails - Capybara with Selenium 和远程 Chrome - 如何附加文件进行上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395806/