angularjs - 检查元素属性是否存在 - Protractor

标签 angularjs protractor

我对 Protractor 和 angularJS 相当陌生,所以请帮助我。当选择 dayReport 元素时,会设置 class='active' 属性,但当未选择该元素时,该属性将被完全删除。

我想确保当选择另一个元素时,dayReport 没有 class='active' 属性,尽管该元素本身仍然存在。

我尝试了这个: expect(dayReport.getAttribute('class').isPresent()).toBe(false); 和其他一些想法,但我似乎没有成功工作。有什么想法吗?

最佳答案

对于正在阅读本文并需要明确答案的人来说,@TomNijs 的响应非常有帮助,但应该创建 hasClass 函数才能使其正常工作。因此,定义 dayReport 元素后的整段代码现在如下所示:

  var hasClass = function (element, cls)
  {
    return element.getAttribute('class').then(function (classes)
    {
      return classes.split(' ').indexOf(cls) !== -1;
    });
  };

  expect(hasClass(dayReport, 'active')).toBe(false);

关于angularjs - 检查元素属性是否存在 - Protractor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29842656/

相关文章:

javascript - 避免 html 页面中存在多个 src 文件

angularjs - 调试 Angular 路线

javascript - Protractor 单击嵌套按钮元素

javascript - 使用 __proto__ 扩展 Protractor 中的基本页面对象

javascript - 配置 Protractor 以忽略浏览器控制台错误

javascript - 在 AngularJS 中重置 textarea 后 Ng-model 不更新

angularjs - Protractor 不会自动启动 PhantomJS

angularjs - 对远程 Sails 服务器的 Angular JS 请求

javascript - Protractor 在不使用 browser.sleep 的情况下编写更干净的测试用例

protractor - 在 Protractor 中,错误 "session not created: This version of ChromeDriver only supports Chrome version 79"