我正在尝试解决如何在使用 WebDriverJs + Mocha 时从使用承诺检索值的块中返回值。
我有这个示例代码来尝试显示我面临的问题,摩卡测试 1) 失败,因为它不使用嵌套test.it
块中的值,而测试 2) 通过。
import assert from 'assert';
import test from 'selenium-webdriver/testing';
import webdriver from 'selenium-webdriver';
test.describe( 'Capture value from promise', function() {
this.timeout( 20000 );
let title, driver;
test.before( 'Start Browser', function() {
driver = new webdriver.Builder().forBrowser( 'chrome' ).build();
} );
test.describe( '1) Capture page title without block', function() {
test.it( 'Get and use page title', function() {
driver.get( 'https://WordPress.com' );
title = driver.getTitle().then( ( innerTitle ) => {
return innerTitle;
} );
console.log( title ); //promise
return assert.equal( title, 'WordPress.com: Create a free website or blog' );
} );
} );
test.describe( '2) Capture page title with block', function() {
test.it( 'Get page title', function() {
driver.get( 'https://WordPress.com' );
return driver.getTitle().then( ( innerTitle ) => {
title = innerTitle;
} );
} );
test.it( 'Use page title', function() {
console.log( title ); // actual title
return assert.equal( title, 'WordPress.com: Create a free website or blog' );
} );
} );
} );
如果我想使用返回的值而不嵌套另一个test.it
块,有没有办法等待承诺被解决?