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

量角器中for循环的异步工作,第1张

量角器中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



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5090149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存