禁用的锚点返回使用WebElement.isEnabled()启用的
Disabled anchor returns enabled using WebElement.isEnabled()
由于某些原因,即使在禁用的html锚标记上,elmFinder.isEnabled()
也会解析为true
。
我已经建立了一个测试站点来证明这一点。
当IMHO不应该时,以下Protractor测试失败
describe('isEnabled() should resolve to true on any html element', function() {
var checkElm = element(by.model('checked'));
var btnElm = element(by.model('button'));
var linkElm = element(by.model('link'));
it('open test page', function() {
browser.get('http://run.plnkr.co/plunks/oExtzK/');
});
it('should be enabled by default: button & link', function() {
expect(btnElm.isEnabled()).toBeTruthy();
expect(linkElm.isEnabled()).toBeTruthy();
});
it('clicks the checkbox to switch enabled/disabled status', function() {
checkElm.click();
});
it('button should now be disabled', function() {
expect(btnElm.isEnabled()).toBeFalsy();
});
// This fails
it('link should now be disabled', function() {
expect(linkElm.isEnabled()).toBeFalsy();
});
});
输出:
Describe: isEnabled() should resolve to true on any html element
001 - open test page ✔
002 - should be enabled by default: button & link ✔
003 - clicks the checkbox to switch enabled/disabled status ✔
004 - button should now be disabled ✔
005 - link should now be disabled FAILED!
Message: Expected true to be falsy.
Stacktrace: Error: Failed expectation
在java绑定文档中找到
对于除禁用的输入元素之外的所有元素,通常都将返回true。
所以我想,解决方法是使用+否定elm.getAttribute('disabled')
而不是elm.isEnabled()
it('link should now be disabled', function() {
expect(linkElm.getAttribute('disabled')).toBeTruthy();
});
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 如何在 API 调用后和 if 语句中启用提交按钮
- 语义ui如何使用javascript启用或禁用下拉列表
- IE6在启用/禁用文本字段上闪烁
- 传单中如何在更改基层时启用/禁用覆盖层
- 根据字段的值启用按钮
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- 如何禁用和启用css规则
- 淘汰赛.JS'启用'长度绑定条件不起作用
- 如何动态检测Mozilla/Chrome上是否启用SSO
- 旋转木马;启用内容安全策略时无法工作
- 动态启用/禁用来自控制器的输入文本
- 如何启用单选按钮
- 检查浏览器'在asp.net的后端代码中启用或禁用了s JS
- jQuery根据用户选择启用/禁用asp.net控件
- 当我的所有 Ng-from 都有效时启用一个按钮
- 在Golang回调函数中启用CORS
- 启用具有多个布尔可观察标志的绑定
- 选择框已禁用或由其他选择框的某个选项启用
- 禁用的锚点返回使用WebElement.isEnabled()启用的