javascript - 将 javascript 变量保存到 Cucumber 变量

标签 javascript ruby cucumber gherkin

我用小 cucumber 和 cucumber 。但不幸的是我需要使用 JavaScript 从服务器获取一些数据。

问题: 如何将 JavaScript 请求结果保存到 cucumber 变量以便能够在后续步骤中重用该结果?

代码:

Then(/^I load all stuff$/) do
  script = "(function  run(){
    var url = 'localhost:8o8o/getStuff';
    $.ajax({url: url}).then(function(res) {
      //PROBLEM: how to save 'res' variable to Ruby variable?
    });
  })()".gsub(/[\t\r\n]/, '');
  @browser.execute_script(script)
end

最佳答案

我是这样做的:

script = "$.ajax({url: '...'}).then(function(res){
    $('<input>').attr({
        type: 'hidden',
        id: 'foo',
        name: 'bar',
        value: JSON.stringify(res)
    }).appendTo('form');
});"
page.evaluate_script(script)
wait_for_ajax
res = page.find('#foo', visible: false).value

所以您会看到,它将隐藏的输入元素附加到具有字符串化值 res 的表单元素。然后我等待ajax执行。然后我发现它在页面上的值(value)。

关于javascript - 将 javascript 变量保存到 Cucumber 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28068404/

相关文章:

c# - 使用 javascript 中的参数调用 ASP.net 函数

javascript - Vue Typescript Konva。 Canvas onClick 抛出 "Uncaught SyntaxError: Function statements require a function name"

ruby - 通过 IntelliJ 在 sdk 中找不到 Rspec gem

ruby - 理想的 Ruby 项目结构

php - 为什么谷歌地图不显示?

javascript - Node.js 版本冲突

windows - 如何在 ruby​​ 中设置 Windows 相关的文件属性?

ruby-on-rails - 运行 cucumber 测试时出错 - 没有要加载的文件

css - 在 cucumber 中查找带有标题文本的跨度下方的特定 div 元素

ruby-on-rails - 获取 “Gem::LoadError: can' t 激活 jwt (~> 0.1.4),已经激活 jwt-1.0.0。”