Protractor 量角器中的条件语句

Protractor 量角器中的条件语句,protractor,conditional,Protractor,Conditional,从项目的筛选列表中,我尝试单击一个项目(SG11)。问题是项目排序列表和项目名称不断变化。所以我试着编码 $('.mat-input-infix.mat-form-field-infix').click(); element.all(by.css('.mat-option-text')).then(function(viewName) { console.log(viewName.length); for (var i = 0; i <

从项目的筛选列表中,我尝试单击一个项目(SG11)。问题是项目排序列表和项目名称不断变化。所以我试着编码

$('.mat-input-infix.mat-form-field-infix').click();
        element.all(by.css('.mat-option-text')).then(function(viewName) {
            console.log(viewName.length);
        for (var i = 0; i < viewName.length; i++) {

        if (viewName [i] == 'SG11') {
            element(by.css('.mat-option-text')).click();
        }
        else{
                console.log('invalid');
        }
        }}); 
$('.mat input infix.mat form field infix')。单击();
元素.all(by.css('.mat option text'))。然后(函数(viewName){
console.log(viewName.length);
对于(var i=0;i
}))

但它总是执行else语句。在if条件下我做错了什么,以及如何单击该特定项?请帮忙

多姆


SG11
SG11_mhk

1)
charAt(i)
将只返回一个字符。字符永远不会等于
SG11


2) 如果要检查是否相等,请使用
==
而不是
=

在代码中有一个错误的位置,如下所示:

element.all(by.css('.mat-option-text')).then(function(viewName) {
   // viewName represents all matched elements, 
   // rather than the text content of all matched elements

   if (viewName[i] == 'SG11') {  // therefor the if condition is no way to be True.
您可以调用
element.all()
上的
getText()
,以读取元素的所有文本,如下代码所示:

$('.mat-input-infix.mat-form-field-infix').click();

let allOpts = element.all(by.css('.mat-option-text'));

allOpts.getText().then(function (viewName) {
    console.log(viewName.length);

    for (var i = 0; i < viewName.length; i++) {

        if (viewName[i] == 'SG11') {
            allOpts.get(i).click();
        }
        else {
            console.log('invalid');
        }
    }
});
$('.mat input infix.mat form field infix')。单击();
让allOpts=element.all(by.css('.mat option text');
allOpts.getText().then(函数(viewName){
console.log(viewName.length);
对于(var i=0;i
i使用===和==。不走运
$('.mat-input-infix.mat-form-field-infix').click();

let allOpts = element.all(by.css('.mat-option-text'));

allOpts.getText().then(function (viewName) {
    console.log(viewName.length);

    for (var i = 0; i < viewName.length; i++) {

        if (viewName[i] == 'SG11') {
            allOpts.get(i).click();
        }
        else {
            console.log('invalid');
        }
    }
});