webdriver.io如何使用node.js

时间:2017-09-23 02:44:11

标签: javascript node.js dom webdriver-io

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

li.sampleClass

然后当您向下滚动时,将添加无限滚动的新数据。但DOM永远不会被清除..每个新数据都将存储为li.sampleClass,这会导致极高的硬件使用率和

.getText('li.sampleClass')

停止使用同一类的大量多个数据。查看检查器时,您可以看到所有存储的数据。所以我想为什么不清除DOM并在滚动到下一个之前删除旧数据。

有没有办法用webdriver.io从DOM中删除完整的类或ID,或者您是否知道用.getText拆分进程的其他棘手方法?请注意我在localhost上使用node.js而我无法访问该网站。该网站在线,所以我想我不能使用像

这样的东西
.execute
从webdriver.io

通过js清除DOM或者我可以吗?

2 个答案:

答案 0 :(得分:1)

是的,您可以使用browser.execute()方法从元素中删除类/ ID。

例如,您想从每个sampleClass中删除li。所以,它看起来像

  

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以获取更多详细信息。

答案 1 :(得分:1)

对于v5 webdriverio,此代码有效:

browser.execute(() => {
      const elemToRemove = document.querySelector('.selector');
      elemToRemove.remove();
  });