在Chrome控制台中:
$$('[data-test="template-input--row"]').find(node => node.querySelector('[data-test="template-input--name"]').innerText === 'ATTACH')
正确返回,没有任何错误。
用
$
替换querySelector会引发错误,即使此操作在WebdriverIO中按预期进行也是如此。$$('[data-test="template-input--row"]').find(node => node.$('[data-test="template-input--name"]').innerText === 'ATTACH')
未捕获的TypeError:node。$不是函数
在:1:59
在Array.find()
在:1:41
如何使用
$
使脚本(Chrome控制台)返回节点而不会引发TypeError?<div class="table__row" data-test="template-input--row"><div class="table__td--double-width table__td" data-test="template-input--name">ATTACH</div>
最佳答案
$
不是方法,而是函数。因此,您无法调用node.$()
。但是,根据docs,$
函数接受第二个参数startNode
,因此您可以尝试以下操作:
$$('[data-test="template-input--row"]').find(node =>
$('[data-test="template-input--name"]', node).innerText === 'ATTACH'
)
关于javascript - 在Chrome控制台中使用$代替querySelector,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58897365/