【问题标题】:Rails 4, Selenium execute javascript with eventRails 4,Selenium 使用事件执行 javascript
【发布时间】:2017-03-02 07:14:36
【问题描述】:

如何在这个 rspec 测试中执行我的 javascript 函数 addRows()?该函数未在测试中运行。

我的 rspec 测试

context 'pressing alt+m, ' do
  it 'appends hello to the dom', :js => true do
    visit welcome_path

    page.execute_script("return addRows(keypressdown = 17, keypressdown = 77);")

    expect(page).to have_content("hello")
  end
end

keypressListener.js 文件

function addRows(event) {
  event = event || window.event;
  if(event.keyCode == 17 && event.keyCode == 77) {
    document.body.append("hello");
  }
}

运行 rails 服务器并在此页面上手动按 alt+m 会运行 addRows() 函数,但测试不会运行该函数。

【问题讨论】:

    标签: javascript selenium-webdriver rspec


    【解决方案1】:

    您可能不需要执行任何 Javascript。 Capybara 有一个element.send_keys 方法。所以这样的事情可能会起作用:

    page.find('body').send_keys [:alt, 'm']
    

    详情请参阅Method: Capybara::Node::Element#send_keys

    【讨论】:

    • 根据您的建议,因为“一个元素代表页面上的单个元素”我使用 variable = page.find 'body' 然后调用 variable.send_keys [:alt, 'm'] 来制作测试通过。谢谢!!!!
    • 太棒了!我将您的经验中的信息添加到我的答案中。
    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 2018-03-19
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多