您好!
我试图自动化以下代码:
<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世界中有点像新手,所以如果问题太愚蠢,请告诉我!
答案 0 :(得分:0)
“未初始化的常量Capybara :: Angular(NameError)”表示初始化顺序有些问题。
我刚刚创建了一个小例子,它可以帮到你:
https://github.com/kikonen/capybara-ng/blob/master/spec/dummy/features/test.feature