【问题标题】:Click() and then() not working - ProtractorClick()然后()不起作用 - 量角器
【发布时间】:2016-11-28 21:14:40
【问题描述】:

我正在使用protractor 编写测试,我的目标是单击一个元素并检查它是否具有特定的class。问题是我使用的是click(),然后是then(),但出现以下错误:

Cannot read property 'getAttribute' of null

问题位于以下代码块中:

element(by.css('#region1 polygon:first-child')).click()
    .then(function(selected){
        expect(selected.getAttribute('class')).toContain('highlighted');
    });

您知道如何解决这个问题吗?提前感谢您的回复!

【问题讨论】:

    标签: javascript jasmine protractor end-to-end


    【解决方案1】:

    click() 回调没有元素本身作为参数。换句话说,在您的情况下,selected 不是一个元素。

    相反,只需一步一步做,让Control Flow 队列完成工作:

    var elm = element(by.css('#region1 polygon:first-child'));
    
    elm.click();
    expect(elm.getAttribute('class')).toContain('highlighted');
    

    请注意,toContain() 不是应用于 class 属性值的最佳匹配器。例如,如果元素具有not-highlighted 类,则此测试将通过。更好的方法是引入自定义的toHaveClass 匹配器,请参阅:

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多