量角器/JavaScript - 从选择下拉列表中返回字符串的函数

Protractor/JavaScript - Function returning a string from a select dropdown

本文关键字:返回 字符串 函数 下拉列表 选择 JavaScript 量角器      更新时间:2023-09-26

我正在尝试创建一个方法,该方法在给定特定索引的下拉选择器中返回选项字符串。然后我想调用该方法并将字符串存储在变量中。注意:在量角器测试中调用该函数。

这是我的代码:

returnStringDropDownValue = function(elementId, index) {
    var returnValue;
    var options = element(by.id(elementId)).findElements(by.tagName('option'))
        .then(function(options){
           returnValue =  options[index].getText();
        });
    return returnValue;
};

var x = returnStringDropDownValue('myId' ,1);

每当我调用此方法时,它都会返回未定义。我是javascript和量角器的新手,你能帮忙吗?

这是 JavaScript 中异步代码的固有问题。该值在then内的某个稍后点填充then实际上是在函数返回后运行的。您需要返回承诺:

returnStringDropDownValue = function(elementId, index) {
    return element(by.id(elementId)).findElements(by.tagName('option'))
        .then(function(options){
           return options[index].getText();
        });
};

然后在要使用它时将其解开:

returnStringDropDownValue().then(function(value){
    // use value here
});

试试这个:

代码笔

  function returnStringDropDownValue(elementId, index) {
      return document.getElementById(elementId).options[index].value;
  }