Javascript 量角器-获取选择菜单选项的文本

Javascript 量角器-获取选择菜单选项的文本,javascript,selenium,protractor,end-to-end,e2e-testing,Javascript,Selenium,Protractor,End To End,E2e Testing,我正在使用量角器对我的应用程序进行e2e测试。但是,在更新记录时,我正在构建一个新值数组,以便与旧值进行比较,以确保它们被正确更新 其中一个字段是选择菜单,因此我想从选项中获取文本以推入数组 我正在使用以下选项选择选项: element(by.id(fieldName6)).click().then(function() { element(by.css('#' + fieldName6 + ' option:nth-child(2)')).click(); }); 这一切都很好。现

我正在使用量角器对我的应用程序进行e2e测试。但是,在更新记录时,我正在构建一个新值数组,以便与旧值进行比较,以确保它们被正确更新

其中一个字段是选择菜单,因此我想从选项中获取文本以推入数组

我正在使用以下选项选择选项:

element(by.id(fieldName6)).click().then(function() {
     element(by.css('#' + fieldName6 + ' option:nth-child(2)')).click();
});
这一切都很好。现在,我希望能够获取该选项的文本,而不是值,以便将其推入数组。我尝试了以下方法:

newValues.push(browser.executeScript("$('#" + fieldName6 + " option:nth-child(3)').text()"));
它推送Promise::17234{[[PromiseStatus]]:pending},以及

它推送[对象]

我现在被卡住了。非常感谢您的帮助。

量角器和WebDriverJ完全基于。elementby.css+fieldName6.$“option:checked”。getText将返回一个承诺,该承诺将由控制流解析为选项文本

您可以将承诺收集到newValues数组中,但是,当您需要实际值时,您必须解析其中的承诺。我会用量角器。承诺。所有这些:

protractor.promise.all(newValues).then(function (resolvedValues) {
    console.log(resolvedValues);
});
请注意,如果您只想在newValues中断言值,可以直接使用expect-它知道何时传入承诺,并在执行检查之前隐式解析承诺:

expect(newValues).toEqual(["option 1", "option 2"]); 

太好了,谢谢@alecxe这个量角器。promise.allnewValues.then函数resolvedValues{console.logresolvedValues;};确实按照我的要求解析为正确的值数组。非常感谢你!
expect(newValues).toEqual(["option 1", "option 2"]);