ruby-on-rails - Capybara with Selenium 和远程 Chrome - 如何附加文件进行上传?

标签 ruby-on-rails selenium rspec capybara selenium-chromedriver

我的场景是单击网站上的图标打开文件浏览器。是否可以将图像附加到规范中打开的文件浏览器窗口。我的配置是 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/

相关文章:

ruby-on-rails - Rails 迁移将当前日期设置为默认值

javascript - 如何在标题中使用 Kaminari 分页

java - Selenium By.className() -> IndexOutOfBoundsException : Index: 0, 大小:0

ruby-on-rails - 如何在 Rails 3 中编写 rspec 测试以测试用户在创建后是否使用 authlogic 签名?

ruby-on-rails - 没有数据库的 Rspec 测试

ruby-on-rails - 如果我的 Rails 测试没有通过,我该怎么办?

ruby-on-rails - 在 RSpec 测试中跳过 Rails http_basic_authenticate_with

selenium - 如何使用 Selenium C# WebDriver 查找所有父元素?

java - 使用 SeleneseTestCase 运行 ANT 会导致 java.lang.NoClassDefFoundError

ruby-on-rails - Rspec 测试或类似 (||=) 运算符