使用isdisplay单击元素,直到显示另一个元素
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()
上使用了一个promise。当在缺少的元素上调用isDisplayed()
时,Protractor将抛出错误…
var expectedElement = $('span.some-specific-class');
expectedElement.isDisplayed().then(function(isDisplayed) {
if(isDisplayed)
console.log('isDisplayed');
});
所以,除非这是无效的语法,如果量角器将抛出调用isPresent()
/isDisplayed()
的错误,您如何检查元素是否存在或显示?!?
处理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) {
});
});
}
这样的东西对你有用吗?
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();
}
});
});
}
相关文章:
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 使用漂亮的照片点击另一个元素显示图像
- 我将如何在 HTML 中将数组中的所有元素显示为可点击的对象
- 使元素显示在最小屏幕大小上
- 更好的做法是通过CSS类或直接(通过DOM)修改HTML元素显示
- 如何在YouTube视频前制作元素显示
- 使隐藏元素显示 X 秒
- 如果元素显示:无;在媒体查询中,它们是否仍然加载
- 无法为每个元素显示高图
- 如何使用 jQuery 逐个元素显示
- 使用 jQuery 画布元素显示 Hiddin Div
- '李'mouseover事件被child'a'元素显示块
- JQuery元素显示/隐藏和控制流
- D3在工具提示上将内部列表的元素显示为不同的行
- AngularJS-动态创建<text区域>使用ngSanitize不会't显示(其他元素显示)
- 如何根据单击的元素的位置使元素显示在右侧或左侧
- 响应元素显示:无;在移动宽度,然后通过javascript按钮返回,但显示的链接断开:block;
- 当我再次单击时,它显示none,高度回到0px,但里面的元素显示,不显示none或离开页面
- 将一个元素显示在另一个元素的顶部,并在其上禁用鼠标悬停事件
- reactjs:为什么在render中定义的一些dom元素显示两次