javascript - Protractor id 点击不起作用

标签 javascript angularjs testing protractor

我正在使用 e2e Protractor 。下面的代码可以很好地打开我的浏览器,但不会单击 id,并且在等待一段时间后失败。我错过了什么

describe('Craigslist automation', function() {
    browser.get('http://finance.yahoo.com');
    it('should greet the named user', function() {

        var postLink = element(by.id('yucs-top-news'));
        postLink.click();
        expect(true).toBeTruthy();

    });
});

这是堆栈跟踪

A Jasmine spec timed out. Resetting the WebDriver Control Flow.
The last active task was: 
WebDriver.executeScript()
    at [object Object].webdriver.WebDriver.schedule (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:302:15)
    at [object Object].webdriver.WebDriver.executeAsyncScript (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:538:15)
    at [object Object].Protractor.get (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/lib/protractor.js:1248:15)
    at [object Object].<anonymous> (/Library/WebServer/Documents/youman/test/spec/spec/example_spec.js:42:13)
    at [object Object].jasmine.Env.describe_ (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-1.3.1.js:913:21)
    at [object Object].jasmine.Env.describe (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-1.3.1.js:898:15)
    at describe (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-1.3.1.js:658:27)
    at Object.<anonymous> (/Library/WebServer/Documents/youman/test/spec/spec/example_spec.js:41:1)
    at Module._compile (module.js:456:26)
F

Failures:

  1) Craigslist automation should greet the named user
   Message:
     timeout: timed out after 10000 msec waiting for spec to complete
   Stacktrace:
     undefined

Finished in 11.011 seconds
1 test, 1 assertion, 1 failure

/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1640
      var result = fn();
                   ^
Error: Angular could not be found on the page http://finance.yahoo.com/ : retries looking for angular exceeded
    at /Library/WebServer/Documents/youman/test/spec/node_modules/protractor/lib/protractor.js:1254:17
    at /Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15
    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1640:20)
    at notify (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:444:12)
    at notifyAll (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:422:7)
    at resolve (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:400:7)
    at fulfill (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:512:5)
    at Object.webdriver.promise.asap (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:758:5)
    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1651:25)
    at notify (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:444:12)
==== async task ====
WebDriver.executeScript()
    at [object Object].webdriver.WebDriver.schedule (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:302:15)
    at [object Object].webdriver.WebDriver.executeAsyncScript (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:538:15)
    at [object Object].Protractor.get (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/lib/protractor.js:1248:15)
    at [object Object].<anonymous> (/Library/WebServer/Documents/youman/test/spec/spec/example_spec.js:42:13)
    at [object Object].jasmine.Env.describe_ (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-1.3.1.js:913:21)
    at [object Object].jasmine.Env.describe (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-1.3.1.js:898:15)
    at describe (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/minijasminenode/lib/jasmine-1.3.1.js:658:27)
    at Object.<anonymous> (/Library/WebServer/Documents/youman/test/spec/spec/example_spec.js:41:1)
    at Module._compile (module.js:456:26)
==== async task ====
WebDriver.quit()
    at [object Object].webdriver.WebDriver.schedule (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:302:15)
    at [object Object].webdriver.WebDriver.quit (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:375:21)
    at [object Object].HostedDriverProvider.teardownEnv (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/lib/driverProviders/hosted.js:47:16)
    at driverprovider_.setupEnv.then.then.then.then.passed (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/lib/runner.js:280:35)
    at _fulfilled (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/q/q.js:797:54)
    at self.promiseDispatch.done (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/q/q.js:826:30)
    at Promise.promise.promiseDispatch (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/q/q.js:759:13)
    at /Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/q/q.js:573:44
    at flush (/Library/WebServer/Documents/youman/test/spec/node_modules/protractor/node_modules/q/q.js:108:17)

最佳答案

protractor是一个用于 Angular 应用程序的端到端测试框架。据我所知,http://finance.yahoo.com 不是一个 Angular 应用程序,错误是这样说的:

Error: Angular could not be found on the page http://finance.yahoo.com/ : retries looking for angular exceeded

但是,您仍然可以通过关闭同步或直接与 driver 对象交互来将 protractor 用于非 Angular 站点,请参阅:

关于javascript - Protractor id 点击不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26922498/

相关文章:

testing - 与具有空 src 属性的 iframe 交互

ruby-on-rails - 将所有外发电子邮件重定向到单个地址以进行测试

javascript - 将新属性附加到对象中的特定位置

javascript - 如何获取表单输入值以替换提交时使用 Angular.js 的表单

javascript - 为什么 AngularJS 在使用 ng-model 时不在文本框上设置长度属性

java - ProcessBuilder - 启动另一个进程/JVM - 如何?

javascript - 如何使用 ThreeJS 在 iPhone 5 上渲染对象的 .mtl?

javascript - 未捕获的类型错误 : Cannot read property 'forEach' of undefined in javascript/React-router/React

javascript - 具有良好 JS 实践的 MVC 5 Web 应用程序(没有 Typescript,您可以使用 ES 2015)

javascript - Angular 路由不起作用