gpt4 book ai didi

angular - Protractor 无法找到元素和脚本超时

转载 作者:搜寻专家 更新时间:2023-10-30 21:26:30 25 4
gpt4 key购买 nike

我正在运行 Protractor ,它成功运行并加载了我的 Angular 应用程序。我编写的第一个测试是获取注册按钮。虽然我可以在我的 View 中看到注册按钮,并且我使用适当的 CSS 来定位它。

仍然,我在运行测试后得到的只是这个错误。

App
✗ should get the text of sign up button
- Failed: script timeout: result was not received in 11 seconds
(Session info: chrome=71.0.3578.98)
(Driver info: chromedriver=2.45.615355 (d5698f682d8b2742017df6c81e0bd8e6a3063189),platform=Mac OS X 10.14.2 x86_64)

我尝试增加 protractor.conf.ts 文件中的 allScriptsTimeout 但无济于事。

app.e2e-spec.ts 文件

    it('should get the text of sign up button', () => {
page.navigateTo();
expect<any>(page.getButtonText()).toEqual('Sign up');
});

app.po.ts

  getButtonText() {
return element(by.css('a[data-e2e="nav-signup"]')).getText();
}

navigateTo() {
return browser.get('/');
}

我在这里做错了什么?

最佳答案

更新了一些语法并从页面对象函数中删除了异步/等待。

正如我提到的,您的失败很可能是由于异步问题造成的。您能否尝试更改代码以禁用 conf 中的 promise_manager 并使用 async/await 语法,看看是否对您有帮助?

我之前在 subject of the async/await & the promise manager 上的回答

每个与浏览器交互的 Action 之前都需要等待,每个包含等待的函数都需要标记为async

Conf.js

exports.config = {
framework: 'jasmine',
specs: ['./app.js'],
// specs: ['./app.js','./app.1.js'],
seleniumAddress: 'http://localhost:4444/wd/hub',
SELENIUM_PROMISE_MANAGER: false
}

页面对象

getButtonText() {
return element(by.css('a[data-e2e="nav-signup"]')).getText();
}

navigateTo() {
return browser.get('/');
}

规范文件

it('should get the text of sign up button', async () => {
await page.navigateTo();
expect(await page.getButtonText()).toEqual('Sign up');
});

关于angular - Protractor 无法找到元素和脚本超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54421734/

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