gpt4 book ai didi

javascript - 我应该从 Protractor 中 Element 的 getText() promise 分配变量还是返回变量

转载 作者:行者123 更新时间:2023-11-30 12:03:49 26 4
gpt4 key购买 nike

我有一个用例,我应该使用 promise 获取 webElement 文本,然后我需要提取字符串的一部分以进一步执行。

应该使用顶部示例还是底部示例?

var id = element(by.binding('smsDetails.message')).getText().then(function(message){
var messageArray = msg.split("\n");
var indexPosition = messageArray[0].indexOf("ID");
id = messageArray[0].substr(indexPosition + 5, 10);
return id;
});
var id;
element(by.binding('smsDetails.message')).getText().then(function(message){
var messageArray = msg.split("\n");
var indexPosition = messageArray[0].indexOf("ID");
id = messageArray[0].substr(indexPosition + 5, 10);
});

最佳答案

您必须获取 getText() 函数返回的值(字符串)。所以你的第二种方法适合这样做。

But caveat to this method is that, since u dont know when protractor returns the string value as its a promise, so make sure you wait until you get the text value first and then perform operation on it as necessary.

方法如下-

var id;
element(by.binding('smsDetails.message')).getText().then(function(message){
var messageArray = msg.split("\n");
var indexPosition = messageArray[0].indexOf("ID");
id = messageArray[0].substr(indexPosition + 5, 10);

//Ideal place to perform operation on text value - id

}).then(function(){

//Perform operation on text value - id

});
//DONT perform operation on text value - id

如果你还需要使用promise(.then())之外的值,那就等到文本返回后再继续你的操作-

var id = '';
browser.wait(function(){
return element(by.binding('smsDetails.message')).getText().then(function(message){
//Other operations
id = messageArray[0].substr(indexPosition + 5, 10);
return !!message;
});
}).then(function(){
//Perform operation on text value - id
});

希望对您有所帮助。

关于javascript - 我应该从 Protractor 中 Element 的 getText() promise 分配变量还是返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com