栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

量角器中for循环的异步工作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

量角器中for循环的异步工作

您需要牢记,不能将

for
-loop与promises一起使用。一切都是异步的,所以 最终它会咬到你 ,这意味着它
it
已经准备好了,但测试还没有。

根据您的示例,建议创建一个名为例如的方法

logon
(将其放置在Page Object或其他对象中)。它将为您完成登录和操作。添加一个空的promise-
container(数组)并将promise推入其中。

for
-loop完成后,你可以一次解决全部承诺容器,它会在彼此之后执行所有的承诺1。它看起来像这样。

var data = require('.../testdata.json');describe('homepage Test', function() {  it('candidate login', function() {    var promises = [];    browser.driver.get('https://abcxyz.com');    for (i in data.testdata) {      promises.push(expect(logon(data.testdata[i].username, data.testdata[i].password)).to.equal(true));      promises.push(console.log(i));    }    Promise.all(promises);  });});function logon(username, password) {  element(by.id('tool_btn3')).click();  return browser.getTitle().then(function(title) {    console.log("Title: " + title)    if (title === "<page title>") {      browser.driver.sleep(3000);      element(by.id('email_input')).sendKeys(username);      element(by.id('pwd_input')).sendKeys(password);      element(by.xpath('//*[@id="signIn_btn"]/div[2]')).click();      browser.sleep(3000);      element(by.id('setting_img')).click();      browser.sleep(2000);      return element(by.id('logout_div')).click()        .then(function() {          return Promise.resolve(true);        });    } else {      return Promise.resolve(false);    }  });}

例如,如果您使用的是Node
7,则可以使用

async/await
或使用Babel来翻译代码。如果您可以编写Typescript,还可以获得
async/await



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号