javascript - webdriver.io 如何使用 node.js 从 DOM 中删除元素

标签 javascript node.js dom webdriver-io

想象一下我会访问一个网站。而且这个网站上有大量的数据。但所有这些数据都具有相同的类别。例如:

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/

相关文章:

javascript - d3 鼠标悬停时绘制一次

node.js - 配置 Azure AppInsights for Node.js 应用程序

javascript - getElementById 仍然是 "safe"DOM 操作方法

javascript - 为什么 iPad/iOS 上的 native 相机分辨率与 getUserMedia 存在差异?

javascript - Angular ng-选项 : iterate over a number array for displaying content of an other array but having index chosen in ng-model

node.js - Nodejs无法连接oracle数据库?

Java-如何获取存储在修改后的 DOM 文档中的完整 xml

jquery - 使用 jQuery 选择多个 <options>

javascript - 表单提交后隐藏动画

node.js - Sails 与 Loopback API 后端