Cucumber 量角器:isPresent不是函数

Cucumber 量角器:isPresent不是函数,cucumber,protractor,Cucumber,Protractor,我有我的密码: this.Then(/^I should see "([^"]*)" link$/, function (callback) { var logoutpath = by.xpath('//div[@id="account_logout"]/a'); browser.wait(function() { return dv.isElementPresent(logoutpath); }, 30000); browser.driver.

我有我的密码:

this.Then(/^I should see "([^"]*)" link$/, function (callback) {
   var logoutpath = by.xpath('//div[@id="account_logout"]/a');

    browser.wait(function() {
        return dv.isElementPresent(logoutpath);
    }, 30000);

    browser.driver.isElementPresent(logoutpath).then(function(isPresent){
        expect(isPresent.isPresent()).toBe(true); 
        browser.driver.findElement(logoutpath).then(function(start){
            start.click();
        });
    });
    browser.sleep(2222);

    console.log(">>>>>>>"+browser.getTitle());

    callback();
});
当我在控制台中运行并获取错误时:

TypeError: isPresent.isPresent is not a function
at c:\Users\binhlex\WebstormProjects\untitled\Feature\Steps\login_steps.js:33:30
at [object Object].promise.ControlFlow.runInFrame_ (c:/Users/binhlex/AppData/Roaming/npm/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:1857:20)
at [object Object].goog.defineClass.notify (c:/Users/binhlex/AppData/Roaming/npm/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:2448:25)
at [object Object].promise.Promise.notify_ (c:/Users/binhlex/AppData/Roaming/npm/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:564:12)
at Array.forEach (native)
我有一些问题? -为什么我没有使用
isPresent
方法?
-当我运行
console.log(“>>>>>>”+browser.getTitle())时
,为什么它会显示
>>>>>PromiseStatus::222{[[PromiseStatus]]:“pending”}
,我如何使用它来验证页面的预期标题?

对于您的最新问题,因为browser.getTitle()是一个承诺,如果您想要console.log title,您必须执行:
browser.getTitle()。然后(函数(title){console.log(title)}

对于你的第一个问题,我不明白你为什么要把代码弄得如此混乱。在量角器中,单击元素之前不必等待元素。(如果没有启用“忽略同步”)

因此:

browser.driver.findElement(logoutpath).then(function(start){
            start.click();
等式:

logoutpath.click()

感谢您的回复,关于问题
isPresent.isPresent不是一个函数
函数,我想检查元素
注销
是否出现在页面上。那么你有什么建议吗?我会使用预期条件:
var EC=dragotor.ExpectedConditions
//等待id为“account\u logout”的元素在dom上可见。
browser.wait(EC.visibilityOf($(“\account\u logout”)),5000)