selenium - 当 webdriver 在使用 Angular 6 开发的网站上运行时,selenium 中的 isEnabled() 函数始终返回 true
问题描述
当 webdriver 在使用 Angular 6 开发的网站上运行时,selenium webdriver 中的 isEnabled() 函数始终返回 true。我发现与该主题相关的所有答案都谈到 disabled 不是属性,而是写在类中按钮。检查此链接以获取详细说明。
但是我正在处理的网站的代码并没有在课堂上编写。这是我网站的代码。
<button _ngcontent-c61="" class="push-right-sm mat-raised-button mat-primary" color="primary" mat-raised-button="" disabled="">
<span class="mat-button-wrapper">SAVE</span><div class="mat-button-ripple mat-ripple" matripple=""></div><div class="mat-button-focus-overlay"></div></button>
我应该如何检查此元素是否已正确启用?
编辑:这是我通过代码检查它的方法。
WebElement button = driver.findElement(By.xpath("//button/span[contains(text(),'SAVE')]"));
if(button.isEnabled()){ System.out.println("The button is enabled."); }
解决方案
您的定位器正在查找SPAN
内部BUTTON
而不是按钮本身。尝试
//button[./span[.='SAVE']]
注意:在这种情况下您不需要使用contains()
,因为整个文本都是“保存”,所以我删除了contains()
.
这基本上读作 find a BUTTON
,SPAN
其中包含等于“SAVE”的文本。我在您提供的 HTML 上对其进行了测试,并且可以正常工作。
推荐阅读
- excel - Excel计算跨越一年的两个日期之间每个月的天数
- delphi - 升级后的自定义组件无法编译
- android - 返回导航控制器的状态(Android导航组件)
- javascript - JavaScript 将字符串转换为 HTML 元素
- angular - 对象不是函数。network.ts 中的错误
- json - 使用 TypeScript 确定泛型类型的基础类型
- phonegap-plugins - iOS - 天哪。您的构建失败。点击上方“Log”按钮查看编译日志
- php - cURL:从伦理的角度来看,什么通话频率是无害的?
- nginx - 如何配置 Nginx 流量通过另一个代理
- node.js - node js文件系统读取pdf的动态变化路径