单击元素,直到使用 isDisplayed 显示另一个元素
Click element until another element is displayed using isDisplayed
我想单击后退按钮,直到到达应用程序中的特定页面(我的 expectedElement
所在的页面)。这似乎不起作用...
它失败了,因为它找不到预期的元素。
function navigateBack() {
var backButton = $('div.back');
var expectedElement = $('span.some-specific-class');
backButton.click().then(function () {
if (expectedElement.isDisplayed()) {
expectedElement.click();
} else {
navigateBack();
}
});
}
我稍作修改以在 isDisplayed()
上使用承诺。在缺失元素上调用 isDisplayed()
时 Protractor 会抛出错误...
var expectedElement = $('span.some-specific-class');
expectedElement.isDisplayed().then(function(isDisplayed) {
if(isDisplayed)
console.log('isDisplayed');
});
因此,除非这是无效语法,否则如果量角器会抛出调用 isPresent()
/ isDisplayed()
的错误,您如何检查元素是否存在或显示?!?
这样的事情对你有用吗?
function navigateBack() {
var EC = protractor.ExpectedConditions;
var isVisible = EC.visibilityOf(expectedElement);
var backButton = $('div.back');
var expectedElement = $('span.some-specific-class');
backButton.click().then(function () {
browser.wait(isVisible, 5000, "failed to wait for element").then(function(result) {
if(result){
expectedElement.click();
} else {
navigateBack();
}
});
});
}
Handle the error 由 isDisplayed()
:
抛出
function navigateBack() {
var backButton = $('div.back');
var expectedElement = $('span.some-specific-class');
backButton.click().then(function () {
expectedElement.isDisplayed().then(function (isDisplayed) {
if (isDisplayed) {
expectedElement.click();
} else {
navigateBack();
}
}, function (err) {
});
});
}
我想单击后退按钮,直到到达应用程序中的特定页面(我的 expectedElement
所在的页面)。这似乎不起作用...
它失败了,因为它找不到预期的元素。
function navigateBack() {
var backButton = $('div.back');
var expectedElement = $('span.some-specific-class');
backButton.click().then(function () {
if (expectedElement.isDisplayed()) {
expectedElement.click();
} else {
navigateBack();
}
});
}
我稍作修改以在 isDisplayed()
上使用承诺。在缺失元素上调用 isDisplayed()
时 Protractor 会抛出错误...
var expectedElement = $('span.some-specific-class');
expectedElement.isDisplayed().then(function(isDisplayed) {
if(isDisplayed)
console.log('isDisplayed');
});
因此,除非这是无效语法,否则如果量角器会抛出调用 isPresent()
/ isDisplayed()
的错误,您如何检查元素是否存在或显示?!?
这样的事情对你有用吗?
function navigateBack() {
var EC = protractor.ExpectedConditions;
var isVisible = EC.visibilityOf(expectedElement);
var backButton = $('div.back');
var expectedElement = $('span.some-specific-class');
backButton.click().then(function () {
browser.wait(isVisible, 5000, "failed to wait for element").then(function(result) {
if(result){
expectedElement.click();
} else {
navigateBack();
}
});
});
}
Handle the error 由 isDisplayed()
:
function navigateBack() {
var backButton = $('div.back');
var expectedElement = $('span.some-specific-class');
backButton.click().then(function () {
expectedElement.isDisplayed().then(function (isDisplayed) {
if (isDisplayed) {
expectedElement.click();
} else {
navigateBack();
}
}, function (err) {
});
});
}