相关疑难解决方法(0)

PhantomJS; 单击一个元素

如何单击PhantomJS中的元素?

page.evaluate(function() {
    document.getElementById('idButtonSpan').click();  
});
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误"未定义不是一个函数......"

如果我改为

 return document.getElementById('idButtonSpan');
Run Code Online (Sandbox Code Playgroud)

然后打印出来,

然后它打印[object object],因此元素确实存在.

该元素充当按钮,但它实际上只是一个span元素,而不是提交输入.

我能够点击这个按钮点击Casper,但Casper有其他限制,所以我回到了PhantomJS.

javascript click phantomjs

80
推荐指数
6
解决办法
8万
查看次数

如何在PhantomJS测试中单击A指令

由Yeoman用角度发生器生成的应用程序.

指示:

angular.module('psApp').directive('scrollTop', function () {
  return {
    restrict: 'A',
    scope: true,
    template: '<a href="#" ng-click="click()" class="scroll-top"><span class="glyphicon glyphicon-arrow-up"></span> Back to top</a>',
    controller: ['$scope', '$element', '$document', function ($scope, $element, $document) {
      $scope.click = function () {
        $document.scrollTop(0, 500);
      };
    }]
  };
});
Run Code Online (Sandbox Code Playgroud)

测试:

describe('Directive: scrollTop', function () {

  // load the directive's module
  beforeEach(module('psApp'));

  var scope, element;

  beforeEach(inject(function ($rootScope, $compile) {
    scope = $rootScope.$new();
    element = $compile('<div scroll-top></div>')(scope);
    scope.$apply();
  }));

  it('should have "Back to top" as text', inject(function () { …
Run Code Online (Sandbox Code Playgroud)

javascript phantomjs angularjs yeoman yeoman-generator-angular

2
推荐指数
1
解决办法
2951
查看次数