Console.log 在浏览器启动前执行 URL

Console.log is executing before browser launches URL

团队,

我将一个元素声明为一个变量,如 txtSearch : element(by.xpath('//input[@type="search"]')), 在某些时候我想将语句记录为

var clickOn = function(webElement){
webElement.click();
console.log("Successfully clicked on the " + webElement);
};

我从 Spec 文件中调用此函数,例如 clickOn (txtSearch)

这个 console.log 在语句执行之前记录控制台,即首先所有 console.log 语句甚至在 URL 启动之前就先执行了。

请在下面找到所需的详细信息:

节点版本:3.10.3 量角器版本:4.0.3

提前致谢。

欢迎来到异步世界!

因为一切都是异步的,要制定你想要的执行顺序,试试这个:

var clickOn = function(webElement){
    return webElement.click().then(()=> {
        console.log("Successfully clicked on the " + webElement);
    });
};

这只会在浏览器端实际完成点击时安排控制台日志。

但我强烈建议阅读 webdriverjs 中的承诺和控制流: http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/promise.html