我正在尝试使用生成器node 0.11.x
来让我的生活更轻松地编写Selenium
测试。我的问题是我不知道如何正确利用它们。我几乎 100% 肯定这一定是语法问题。
我正在使用官方selenium-webdriver
模块(2.37.0 版)和co
(2.1.0 版)来创建我的生成器。
这是一个没有生成器/产量魔法的常规测试:
driver.isElementPresent(wd.By.css('.form-login')).then(function (isPresent) {
console.log(isPresent); // true
});
以下是尝试使用 yield/generator 魔术获得相同结果的 2 次尝试:
var isPresent = yield browser.isElementPresent(wd.By.css('.form-login'));
console.log(isPresent); // undefined
var isPresent = yield browser.isElementPresent(wd.By.css('.form-login')).then(function (isPresent) {
console.log(isPresent); // true
});
console.log(isPresent); // undefined
如您所见,isPresent
is always undefined
,除非在then()
promise 的回调中。我必须承认,我对生成器或承诺都不太熟悉,所以我可能会遗漏一些非常明显的东西。