使用Phantomjs测试AngularJS

时间:2014-10-21 19:34:06

标签: javascript angularjs phantomjs

我正在尝试使用PhantomJS测试AngularJS教程(http://angular.github.io/angular-phonecat/step-7/app)。我无法输入实际运行的搜索。

以下是我目前的情况:

var page = new WebPage();
page.open('http://angular.github.io/angular-phonecat/step-7/app', function() {
  page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
    page.evaluate(function() {
        $("[ng-model=query]").click();
        $("[ng-model=query]").focus();
        $("[ng-model=query]").val("xoom");
        console.log($('ul.phones').text());
    });
    phantom.exit()
  });
});

1 个答案:

答案 0 :(得分:2)

直接更改输入值时,绑定似乎不起作用。您需要使用PhantomJS的本机输入法sendEvent

page.open('http://angular.github.io/angular-phonecat/step-7/app', function() {
    page.evaluate(function() {
        document.querySelector('[ng-model=query]').focus();
    });
    page.sendEvent("keypress", "xoom");
    page.evaluate(function() {
        console.log(document.querySelectorAll('ul.phones li').length + " products");
    });
    phantom.exit();
});