Selenium 水豚:方法';第'页;不适用于已创建的模块

Selenium 水豚:方法';第'页;不适用于已创建的模块,selenium,capybara,Selenium,Capybara,我正在使用Cucumber和SeleniumWebDriver,Ruby 2.0 当我使用simple def时,一切正常,但当我尝试创建模块时 module ELEM_TEXT_CONVERTING def self.convert(element1, element2) element1_blink = human2selector(element1) element2_blink = human2selector(element2) blink_bckgr(

我正在使用Cucumber和SeleniumWebDriver,Ruby 2.0

当我使用simple def时,一切正常,但当我尝试创建模块时

module ELEM_TEXT_CONVERTING

  def self.convert(element1, element2)
    element1_blink = human2selector(element1)
    element2_blink = human2selector(element2)

    blink_bckgr(element1_blink, element2_blink)
    ...
end
其中blink_bckgr启动以下脚本

page.execute_script <<-EOS
    var color_orig1 = document.querySelector('#{elem1}').style.backgroundColor;
    var color_orig2 = document.querySelector('#{elem2}').style.backgroundColor;
    window.color_orig1 = color_orig1;
    window.color_orig2 = color_orig2;
    document.querySelector('#{elem1}').style.backgroundColor = "#FF0000";
    document.querySelector('#{elem2}').style.backgroundColor = "#FF0000";
  EOS

page.execute\u script需要初始化capybara的.rb,在rspec中,通常将其放在spec\u helper等中

一旦你有了这个要求,你甚至不需要页面。。。您应该能够直接调用execute_脚本

您可以通过调用以下命令来确保问题是缺乏对capybara实例的可见性:

Capybara.page.execute_script
如果这有效,那么上面的建议就解决了你的问题

Capybara.page.execute_script