队
我将一个元素声明为变量,如 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
提前致谢。
答案 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