失败:无法读取带有预期条件的未定义属性“ bind”

时间:2019-09-26 12:53:27

标签: protractor

我的脚本在此行的预期条件下失败:

let condition = EC.presenceOf (title_css);

错误消息:

  

失败:无法读取未定义的属性'bind'

我尝试了Selenium Java中的等效脚本,并且可以正常工作。但是我不知道为什么这在量角器中失败了。我是量角器的新手,想知道ExpectedConditions是否不适用于非角度。

var title_css = "h1[ng-bind='::$ctrl.primaryText']"

describe ("Protractor test demo", function(){

    it ("testing site", function (){

        browser.get('https://www.eat24.com/')

        let EC = ExpectedConditions;
        var title_css = by.css (title_css);
        let condition = EC.presenceOf (title_css);
        browser.wait(condition, 30000)
    })
})
量角器中的

ExpectedConditions应该接受Selenium / Java中的CSS吗?

2 个答案:

答案 0 :(得分:1)

将EC更改为EC = protractor.ExpectedConditions;

然后存在browser.wait(EC.presenceOf(element));部分

这种情况还会返回需要解决的承诺

答案 1 :(得分:1)

我建议您先阅读量角器API文档。您会看到量角器具有不同的语法

我在您的代码中发现了一些问题

let title_css = "h1[ng-bind='::$ctrl.primaryText']" // I assume you verified it works

describe("Protractor test demo", function() {

  it("testing site", function () {

    browser.get('https://www.eat24.com/')

    let EC = protractor.ExpectedConditions; // ExpectedConditions may be available as a global variable, may not, so to be safe do it this way...
    let title_element = element(by.css(title_css)); // syntax is element(by.strategy(locator))
    let condition = EC.presenceOf(title_element);
    browser.wait(condition, 30000)
  })
})

如果您解决问题,那么下一个问题将是Promises,我可以保证。因此,请阅读如何处理它们