想象一下我会访问一个网站。而且这个网站上有大量的数据。但所有这些数据都具有相同的类别。例如:
li.sampleClass
然后,当您向下滚动时,新数据将无限滚动地添加。但 DOM 永远不会被清除。每个新数据都将存储为 li.sampleClass 这会导致极高的硬件使用率并且
.getText('li.sampleClass')
停止使用同一类的大量多个数据。当您查看检查器时,您可以看到所有存储的数据。所以我想为什么不在滚动到下一个之前清除 DOM 并删除旧数据。
有没有办法使用 webdriver.io 从 DOM 中删除完整的类或 ID,或者您是否知道使用 .getText 拆分进程的其他棘手方法?请注意,我在本地主机上使用node.js,并且无权访问该网站。该网站是在线的,所以我想我不能使用类似的东西
.execute
从 webdriver.io 通过 js 清除 DOM 还是可以?
最佳答案
是的,您可以使用 browser.execute()
方法从元素中删除类/id。
例如,您想从每个 li
中删除 sampleClass
。所以,它看起来像
browser.execute('const liElements = document.querySelector(\'li.sampleClass\'); liElements.classList.remove(\'sampleClass\')')
或者相同,但是您可以使用函数来代替将 JS 脚本作为字符串传递
browser.execute(() => { const liElements = document.querySelector('li.sampleClass') liElements.classList.remove('sampleClass') }
查看文档 http://webdriver.io/api/protocol/execute.html了解更多详情。
关于javascript - webdriver.io 如何使用 node.js 从 DOM 中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46375512/