以下代码从网页获取一些文本,获取一个输入框,将其清除并将文本从之前发送到该输入框:
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()
可以收到 promise ,这不是我正在寻找的解决方案。 最佳答案
最简单的方法是:
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);
}
关于javascript - Protractor/网络驱动程序执行 promise ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24998230/