无法读取未定义javascript WebDrivero的属性$$

无法读取未定义javascript WebDrivero的属性$$,javascript,jquery,selenium,webdriver-io,Javascript,Jquery,Selenium,Webdriver Io,我正在尝试使用webdriverio框架访问嵌套的webelement 我有以下代码 function selectSales(sfilters, salesflowName) { const sflow = $$("app-filters-manager app-salesflow-panel mat-expansion-panel").find(element => { return element.getText() === salesflowName; })

我正在尝试使用webdriverio框架访问嵌套的webelement

我有以下代码

function selectSales(sfilters, salesflowName) {
  const sflow = $$("app-filters-manager app-salesflow-panel mat-expansion-panel").find(element => {
        return element.getText() === salesflowName;
  });

/* The below is to select the checkbox from a list of checkboxes under 
the parent */  
sfilters.forEach(fil => {
    sflow.$$("mat-list-option").find(el => { //* > This is where I am getting error.
        return el.getText().includes(fil);
    }).$('mat-pseudo-checkbox').click();
  });
}
我正在获取未定义的
无法读取属性“$$”


不知道为什么会出现错误
'sflow'
是父webelement,使用
$$(“mat列表选项”)
访问子元素时会出现错误。

您的
sflow
变量未定义,这意味着以下表达式不会返回任何内容

$$("app-filters-manager app-salesflow-panel mat-expansion-panel").find(element => {
        return element.getText() === salesflowName;
  });
这可能是因为以下几点:

  • 是否确定
    $$(“应用过滤器管理器应用程序销售流程面板mat扩展面板”)
    返回您要查找的元素的父元素?选择器正确吗

  • 请记住,find()遍历并查找
    $$(“应用过滤器管理器应用程序销售流程面板mat扩展面板”)选择器的子项。它还可能返回多个子项。如果该选择器已经是要使用的元素,请删除以下部分:

  • const sflow=$$(“应用过滤器管理器应用程序销售流程”面板 mat扩展面板“)。查找(元素=>{ return元素。getText()==salesflowName;})

  • 确保为
    salesflowName
    param传递了正确的值

  • element.getText()
    可能正在返回一些包含空格的文本。尝试
    element.getText().trim()

  • 基本上,您需要确保
    sflow
    变量的值得到初始化。无论是选择器、
    salesflowName
    param的问题还是相等性测试失败的空白,都需要通过调试进行调查


    祝你好运

    您的选择器似乎无效。它不应该是这样的(寻找类的选择器)

    const-sflow=$$(“.app-filters-manager.app-salesflow-panel.mat扩展面板”).find(元素=>{
    return元素。getText()==salesflowName`
    
    在其他选择器中也是如此。并且应该返回一个子项,所以它是确定的

    但是如果它是有效的,您确定元素在DOM中吗