Javascript 量角器-can';t读取EC.texttobepresentElement的未定义属性绑定

Javascript 量角器-can';t读取EC.texttobepresentElement的未定义属性绑定,javascript,exception,selenium-webdriver,protractor,Javascript,Exception,Selenium Webdriver,Protractor,我的规格: it('displays user details page of an active user', function () { var userDetailsPage = new UserDetailsPage(); var usersPage = new UsersPage(); expectVisibilityOf(usersPage.thirdRow, 'element firstRow was not visible ')

我的规格:

  it('displays user details page of an active user', function () {
        var userDetailsPage = new UserDetailsPage();
        var usersPage = new UsersPage();
        expectVisibilityOf(usersPage.thirdRow, 'element firstRow was not visible ');
        var positionUsersTableThirdRow = usersPage.thirdRowPosition.getText();
        var idUsersTableThirdRow = usersPage.thirdRowId.getText();
        var emailUsersTableThirdRow = usersPage.thirdRowEmail.getText();
        clickWithWait(usersPage.thirdRow);
        browser.wait(EC.elementToBeClickable(userDetailsPage.position.value), WAIT_TIMEOUT, 'element position was not clickable ');
        browser.wait(EC.elementToBeClickable(userDetailsPage.id), WAIT_TIMEOUT, 'element id was not clickable ');
        browser.wait(EC.elementToBeClickable(userDetailsPage.email), WAIT_TIMEOUT, 'element email was not clickable ');

        browser.wait(EC.textToBePresentInElement(userDetailsPage.position, positionUsersTableThirdRow), 5000);
        browser.wait(EC.textToBePresentInElement(userDetailsPage.id, idUsersTableThirdRow), 5000);
        browser.wait(EC.textToBePresentInElement(userDetailsPage.email, emailUsersTableThirdRow), 5000);

        //expect(userDetailsPage.position.value.getText()).toEqual(positionUsersTableThirdRow);
        //expect(userDetailsPage.id.getText()).toEqual(idUsersTableThirdRow);
        //expect(userDetailsPage.email.getText()).toEqual(emailUsersTableThirdRow);
    });
问题是,当我使用
expect(element.getText()).toEqual()时,测试工作正常(这些注释项)但对于量角器ExpectedCondition,它会失败,并显示有关未定义绑定的消息-
失败:无法读取未定义的属性“bind”。

这里有什么问题?

我认为这是一个简单的复制粘贴错误。您需要使用
userDetailsPage.position.value
而不是
userDetailsPage.position

positionUsersTableThirdRow.then(function (value) {
    browser.wait(EC.textToBePresentInElement(userDetailsPage.position.value, value), 5000);
});

请注意,这里我使用
then()

True显式解析
positionUsersTableThirdRow
,它解决了绑定异常,但这次出现了TimeoutError。就像它在等待一些不存在的东西。@Michal我不确定,但你不应该用
then()
?…如何明确地解析
positionUsersTableThirdRow
?你能更正我的密码吗?我是js的新手。@Michal顺便说一句,有一个更新-你能检查一下它是否适合你吗?谢谢