【发布时间】:2015-04-15 16:48:24
【问题描述】:
你好!
我正在尝试自动化以下代码:
<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 和其他一些 Gems,并且该站点是使用 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 世界的新手,所以如果问题太愚蠢,请告诉我!
【问题讨论】:
标签: javascript ruby-on-rails ruby capybara middleman