无法使用javascript单击筛选的元素
无法单击筛选的元素无法使用javascript单击筛选的元素,javascript,jquery,automation,webdriver-io,Javascript,Jquery,Automation,Webdriver Io,无法单击筛选的元素 $$("app-filters-manager app-salesflow-panel mat-expansion-panel").filter(element => { return element.getText() === "face"; }).click(); 我得到以下错误 $$(...).filter(...).click is not a function 返回元素数组,而不是元素 在调用之前,需要从列表中选择一个元素。单击: .fil
$$("app-filters-manager app-salesflow-panel mat-expansion-panel").filter(element => {
return element.getText() === "face";
}).click();
我得到以下错误
$$(...).filter(...).click is not a function
返回元素数组,而不是元素
在调用之前,需要从列表中选择一个元素。单击:
.filter(...)[0].click();
除了@nick所解释的,您还可以使用find
,这将是一种更有效的方法来实现您所寻找的目标
$$("app-filters-manager app-salesflow-panel mat-expansion-panel").find(element => {
return element.getText() === "face";
}).click();
filter
方法将迭代所有元素,即使在找到一个通过条件的元素之后也是如此,而find将在第一次出现时停止
如果所有元素都不满足条件,这两个选项都将返回undefined,并且当您尝试执行单击undefined时将抛出错误。ChanChow,您应该将此标记为正确答案。@Joundil我很感激这个手势,但我想这只会ping我,而不是ChanChow(因为评论是针对我的回答,而不是针对他们的问题)。这也不是必须的,ChanChow不是新用户,以前也接受过答案。他们可能很忙,或者可能正在等待更完整的答案,没有理由要求接受,OP可以在自己的时间内接受他们选择的任何答案,或者根本不接受。正如您提到的,迭代器会在seco上抛出未定义的错误nd元素。为什么会发生这种情况。筛选或查找的主要目标是查找元素并执行一些操作您是否有多个元素与选择器匹配?这些类是您在选择器中使用的吗?