尝试使用水豚角和自动水龙头进行自动化capybara-ng gems - 帮助&例子。-

时间:2015-04-15 16:48:24

标签: javascript ruby-on-rails ruby capybara middleman

您好!

我试图自动化以下代码:

<form class="form ng-pristine ng-valid ng-scope ng-valid-email" ng-controller="SubscribeController" subscribe-directive="">
<input class="ng-pristine ng-valid ng-valid-email ng-touched" ng-model="subscription.email" placeholder="Email Address" ng-disabled="working || subscription.done" type="email">
<button disabled="disabled" type="submit" ng-class="{'working': working}" ng-disabled="working || !subscription.email || subscription.done" ng-click="submit(subscription.email)">
<span class="ng-binding" ng-bind-html="submitBtn">Click</span>
</button> <p ng-bind-html="callback_message" class="msg ng-binding ng-hide" ng-show="callback_message"></p>
</form>

虽然我可以在页面上执行Javascripts命令时触及它们(使用带有黄瓜设置的@javascript标记),由于输入字段具有的属性,我无法使其工作,因为只有在进入时才更改为启用手动发送电子邮件,甚至当我触发更改状态时,但是当我点击按钮时,我输入的电子邮件似乎没有发送过来。

我使用的是Cucumber + Capybara + Rake + Rails和其他一些宝石,该网站是用Middleman建造的。

以下是使用纯JS进行测试的代码:

page.execute_script("$('input[type=email]').val('#@random_email}').trigger('blur')")
page.execute_script(" $('button[type=submit]').prop('disabled', false).trigger('click') ")

包含capybara-ng gem并添加行

include Capybara::Angular::DSL

我得到了:

cucumber
uninitialized constant Capybara::Angular (NameError)

我已经加入了spec/spec_helper.rb,但我发现文件无法加载!

有人能指出任何好的例子和使用任何或两个提到的宝石?或者我如何测试Angular?有人有理由认为这不会起作用吗?

我在Ruby世界中有点像新手,所以如果问题太愚蠢,请告诉我!

1 个答案:

答案 0 :(得分:0)

“未初始化的常量Capybara :: Angular(NameError)”表示初始化顺序有些问题。

我刚刚创建了一个小例子,它可以帮到你:

https://github.com/kikonen/capybara-ng/blob/master/spec/dummy/features/test.feature