ruby - 带 Selenium 的 capybara ,send_key 不起作用

标签 ruby cucumber capybara nokogiri

我正在使用 Cucumber 来测试没有提交按钮的评论表单。我发现 selenium 有一个叫做 send_key 的方法,理论上应该允许我这样做:

find_field('my-field').native.send_key(:enter)

但是当我运行测试时,我得到:

undefined method `send_key' for #<Nokogiri::XML::Element:0x007f874b361828> (NoMethodError)

不知道我做错了什么。有什么想法吗?

最佳答案

您必须使用 Selenium 驱动程序而不是 Capybara 中的 :rack_test 驱动程序来访问 send_keys 方法:

  • 安装 gem selenium-webdriver 并将其添加到您的 gem 文件中(如果您使用的是 bundler )。
  • 使用 :js => true 标记您的测试,以便它与 Selenium 驱动程序一起运行。

你会得到一个错误,因为默认情况下,Capybara 使用 :rack_test 驱动程序。在元素上调用 native 访问驱动程序特定的方法。 :rack_test 驱动程序元素作为 Nokogiri::XML::Element native 实现,因此 send_keys 方法不存在,您会收到此错误。

关于ruby - 带 Selenium 的 capybara ,send_key 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864364/

相关文章:

java - 从命令行运行时找不到 Cucumber 步骤定义

ruby - jekyll 再生失败,出现 unicode 帖子

ruby - 使用 Ruby + OAuth 访问 Yelp API

ruby - Ruby中使用eval函数调用其他函数

ruby-on-rails - Cucumber 不会接受 Capybara Minitest 规范断言

ruby-on-rails - 使用 Capybara 和 Selenium on Rails 5.1 应用程序(从 Rails 4 升级)的系统测试设置问题

ruby-on-rails - 如何在不使用任何 yaml 文件的情况下建立第二个数据库连接?

java - 如何获得 Cucumber 特征的结果

ruby - 为 capybara 设置 app_host 的内容

html - 用 capybara 点击输入