selenium - isDisplayed() 不工作,正在使用 pagefactory
问题描述
if (wait.until(ExpectedConditions.elementToBeClickable(user.profileEdit)).isDisplayed()) {
wait.until(ExpectedConditions.elementToBeClickable(user.profileEdit)).click();
System.out.println("RECORD FOUND");
} else {
System.out.println("NO RECORD FOUND");
}
}
提前致谢!
解决方案
wait.until(ExpectedConditions.elementToBeClickable(user.profileEdit))
- 如果元素不可点击,TimeoutException 将被抛出并且.isDisplayed()
不会被执行 - 你应该选择wait
或者isDisplayed
重写你的代码。- 如果不工作,元素可能在框架中
wait
- 你只需要切换框架。 NoSuchElementException
如果user.profileEdit
元素在出现之前被初始化,将在你的情况下被抛出 - 你可以像这样重写你的测试test() { element.click(); .... assertThat(driver.findElement(By.xpath("user.profileEdit")).isDisplayed()) .as("RECORD NOT FOUND"); }
推荐阅读
- pandas - 如何在python中的某个字符串处剪切字符串?
- python-3.x - 阈值红外图像
- react-native - 错误:捆绑失败:不变违规:无效资产解析
- python-2.7 - 如何使用连接字符串获取请求的方法?
- kotlin - 使用“when in”证明了地图访问的智能转换
- vue.js - 如何在外部 oauth2 完成后重新获取 apollo vuejs
- spring-cloud-stream - Spring Cloud Stream Kinesis Binder 错误处理
- r - 如何按列和行对值求和,如 Excel 中的数据透视表?
- java - 飞碟无法识别 html 实体
- python - Django request.data.get('submit') 始终没有返回,即使 name 提供为 name="submit"