首先是我的代码。...
describe('Details page', function () {
//
// Email Field
//
it('Entering Email', function (done) {
browser.driver
.then(() => utils.presenceOf(detailsSpecs.getEmail()))
.then(() => utils.sendKeys(detailsSpecs.getEmail(), userData.email))
.then(() => done());
});
//
// Click Next Step Button
//
it('Clicking Next Step button', function (done) {
browser.driver
.then(() => utils.click(detailsSpecs.getNextStepButton()))
.then(() => done());
});
//
// Wait for stock to fully load
//
it('Waiting for stock to fully load', function (done) {
setTimeout(function () {
done();
}, 5000);
});
if (element.all(by.className("generic-error-heading")).first()) {
it('Clicked all remove button', function (done) {
let allBtns = detailsSpecs.getRemoveButtonDesktop();
allBtns.count()
.then(function (countElement) {
console.log('Find buttons: ', countElement)
for (let i = 0; i < countElement; i++) { // let variables are scoped to the immediate enclosing block denoted by { }
utils.click(detailsSpecs.getRemoveButtonDesktop().first())
browser.sleep(1000) // sleep 1s
}
})
.then(() => {
done();
})
});
//
// Click Next Step Button - Not needed if two above is returning 0
//
it('Clicking Next Step button', function (done) {
browser.driver
.then(() => utils.elementToBeClickable(detailsSpecs.getNextStepButton()))
.then(() => utils.click(detailsSpecs.getNextStepButton()))
.then(() => done());
});
} else {
it('DONE', function (done) {
browser.driver
.then(() => console.log("YES"))
.then(() => done());
});
}
});
我一直在尝试通过跳过未提供元素的方式来加快测试用例的速度。如果未显示,则跳过if-statement内的所有内容,否则我们将进行测试用例。
我有一个要监视的元素,它是element.all(by.className("generic-error-heading")).first()
(应该为2,但对我来说,它是否要显示就很重要)
我的问题是,即使元素显示在HTML中,它现在也会跳过它并执行Else语句。
我的问题是,如果存在元素,则如何在正确的if语句中进行正确的if-else声明?
更改if (element.all(by.className("generic-error-heading")).first())
创建人:
if (element.all(by.className("generic-error-heading")).first().isDisplayed())