在浏览器启动URL

时间:2017-02-16 08:02:56

标签: node.js protractor jasmine-node

我将一个元素声明为变量,如 txtSearch:element(by.xpath(&#39; //输入[@type =&#34; search&#34;]&#39;))< / strong>,在某些时候我想将语句记录为

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

欢迎来到异步世界!

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

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