Javascript 可以用量角器测试淘汰赛应用程序吗?

Javascript 可以用量角器测试淘汰赛应用程序吗?,javascript,knockout.js,protractor,e2e-testing,Javascript,Knockout.js,Protractor,E2e Testing,我正在制作一个使用敲除的网页。我在看到后设置了量角器,但量角器似乎不能“看到”属于KO组件的任何元素 describe('a simple test', function () { it('works', function () { browser.ignoreSynchronization = true; browser.get('profile'); expect(browser.getTitle()).toEqual('Title'); // this pa

我正在制作一个使用敲除的网页。我在看到后设置了量角器,但量角器似乎不能“看到”属于KO组件的任何元素

describe('a simple test', function () {
  it('works', function () {
    browser.ignoreSynchronization = true;
    browser.get('profile');

    expect(browser.getTitle()).toEqual('Title');  // this passes (outside KO)

    expect(element(by.id('ko-component')).getText()).toEqual('Hello World!'); // this fails (inside KO)
  });
});
第二个断言导致此错误,即使元素肯定在HTML中

Message:
 NoSuchElementError: No element found using locator: By.id("ko-component")

如果我不能使用量角器,那么欢迎对其他e2e测试框架提出建议。

量角器
基本上是
JS
的包装器(javascript selenium绑定)<代码>量角器使测试AngularJS页面更容易、更自然,知道何时设置了角度,页面准备好与之交互,并引入了几个特定于角度的定位器

换言之,您完全可以使用
量角器测试
剔除
页面。在这种情况下,您需要使用
presenceOf
,直到
ko组件
元素出现:

var EC = protractor.ExpectedConditions;
var e = element(by.id('ko-component'));
browser.wait(EC.presenceOf(e), 10000);

expect(e.getText()).toEqual('Hello World!');