- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的工作中,我们有一些测试在我同事的本地计算机上失败,但在我的或我们运行测试的代理上却失败,我们无法弄清楚原因。我的印象是,当您使用 Protractor 时,每个 Protractor 都会在控制流中排队并按顺序执行。我们在我同事的机器上看到的是,尽管之前的 promise 尚未得到解决,但随后的 promise 仍在执行。我已经删除了与工作相关的细节,希望下面的代码片段足以理解正在发生的事情。
我对 Protractor 的理解是错误的还是我同事的机器有问题?
"use strict";
describe('Test Title', function() {
let fetchedData,
createdData;
beforeAll(()=> globalHelper.logIn());
afterAll(()=> globalHelper.logOut());
it("Precondition: set to clean state", function () {
environmentHelper.cleanEnvironment();
});
it("Get data from server", function () {
fetchDataFromServer()
.then((result) => {
fetchedData = result;
});//we expect execution of the test to stop until this promise is resolved and an error is thrown or the code inside the then is executed
});
it("Next Step", function () {
//do some things
});
it("Next step", function (){
//do more things
});
it("Navigate to page", () => {
//navigate to page
});
it("create some data", function () {
//create some data
});
it("another step", function () {
//do even more things
});
it("Clean up", function() {
environmentHelper.removeCreatedData(createdData);
});
});
如有任何帮助,我们将不胜感激。提前致谢
最佳答案
我会在 fetchDataFromServer
上添加额外的日志记录,并且可能有一个 catch 语句,
it("Get data from server", function () {
fetchDataFromServer().then((result) => {
console.log('data fetched from server complete');
fetchedData = result;
}).catch(err => {
console.error('something bad happened here);
});
//we expect execution of the test to stop until this promise is resolved and an error is thrown or the code inside the then is executed
});
it("Next Step", function () {
console.log("next step");
//do some things
});
Protractor 应该等待基于angular/jasminewd
的it block 内的 promise 解决。对于 controlFlow
,selenium-webdriver 将 Promise 排队并按顺序解析它们,因此当您发送 browser.get
或 element(by.css('')) 时.click
,它们按顺序发生。
关于javascript - 我是否误解了 Protractor 和 ControlFlow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890386/
在我的工作中,我们有一些测试在我同事的本地计算机上失败,但在我的或我们运行测试的代理上却失败,我们无法弄清楚原因。我的印象是,当您使用 Protractor 时,每个 Protractor 都会在控制
以下是我们的规范文件,无需 async 关键字即可正常工作。 但是,当我们尝试将现有的 Protractor 框架从控制流更改为异步等待时,它在描述和 block 中都显示上述错误。即使我们尝试使用'
在 Protractor 测试中,可以像这样在元素上链接诸如“clear”和“sendKeys”之类的操作: element(by.id('myId')).clear().sendKeys('1234
我目前在返回 ES6 Promises 的 Protractor 测试中调用一些外部代码。 我希望使用 ControlFlow 链接这些 promise ,但在编译 Typescript 时出现类型错
我是一名优秀的程序员,十分优秀!