下面的代码从网页获取一些文本,获取一个inputbox,清除它,并将之前的文本发送到该inputbox:
var pText = browser.element(by.css('some_tag')).getText();
var inputbox = browser.element(by.css('[data-aid="login-app-input-username"]'));
inputbox.clear();
// if pText is defined here, everything is ok.
inputbox.then(
function(e){
pText.then(
function(text) {
e.sendKeys(text);
});
});结果是sendKeys()在clear()之前完成,尽管代码的顺序是这样的。
如果我们将pText的声明向下3行(在clear()之后),一切都会正常工作。
我的问题是,如何才能在不依赖于pText声明的情况下以正确的顺序执行上述代码。顺便说一句,我知道sendKeys()可以得到一个承诺,而这不是我正在寻找的解决方案。
发布于 2014-07-30 01:09:20
最简单的方法是:
var pText = browser.element(by.css('some_tag')).getText();
var inputbox = browser.element(by.css('[data-aid="login-app-input-username"]'));
pText.then(function(text) {
inputbox.clear().sendKeys(text);
}https://stackoverflow.com/questions/24998230
复制相似问题