gpt4 book ai didi

javascript - 能否使用 Protractor 测试 Knockout 应用程序?

转载 作者:数据小太阳 更新时间:2023-10-29 05:09:59 25 4
gpt4 key购买 nike

我正在开发一个使用 Knockout 的网页。我在看到 this post about using Protractor on non-Angular pages 后设置了 Protractor ,但 Protractor 似乎无法“看到”属于 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")

如果我不会使用 Protractor,欢迎推荐其他端到端测试框架。

最佳答案

protractor 基本上是 WedDriverJS(javascript selenium 绑定(bind))的包装器。 protractor 使测试 AngularJS 页面变得更容易、更自然,知道 Angular 何时确定并且页面已准备好与之交互,并引入了几个特定于 Angular 定位器。

换句话说,您绝对可以使用protractor 测试knockout 页面。在这种情况下,您需要 explicitly wait直到使用 presenceOf 出现 ko-component 元素 Expected Condition :

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

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

关于javascript - 能否使用 Protractor 测试 Knockout 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30064167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com