2017-09-23 14 views
0

私はウェブサイトにアクセスするとします。そしてこのウェブサイトには大量のデータがあります。しかし、このデータはすべて同じクラスです。例:webdriver.io node.jsでDOMから要素を削除する方法

li.sampleClass 

次に、新しいデータが無限のスクロールで追加されます。 DOMがクリアされることはありません。しかし...すべての新しいデータは、これがEXTREM高いハードウェアの使用率を引き起こし、

.getText('li.sampleClass') 

ストップが同じクラスで複数のデータを大量に取り組んli.sampleClassとして保存されます。インスペクタを見ると、格納されているすべてのデータを見ることができます。だから私はなぜDOMをクリアして、次のものにスクロールする前に古いデータを削除しないかと考えた。

webdriver.ioを使用してDOMから完全なクラスまたはIDを削除する方法はありますか、それとも.getTextを使用してプロセスを分割する他のトリッキーな方法がありますか?私はlocalhost上でnode.jsを使用していることに注意してください。私はウェブサイトにアクセスできません。ウェブサイトは、オンラインでは、私は、私はJS経由でDOMをクリアするwebdriver.ioから

.execute 

のようなものを使用can'tと思いますか私はできますか?

答えて

1

はい、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のドキュメントを参照してください。これはあなたのanwserに基づいて

+0

は私 .executeのために働いていた(()=> { するvar removeme = document.querySelector( 'li.sampleClass') removeme.innerHTML = '' }); – t33n

関連する問題