2015-10-18 13 views
7

Ich verwende Selenium WebDriver (ChromeDriver). Ich muss einige Elemente aus der Seite nach der Verarbeitung entfernen (aus dem DOM-Modell).WebDriver Element von Seite entfernen

Zum Beispiel habe ich ein folgendes Element haben:

WebElement starRatingElement = reviewElement.findElement(By.className("review-info-star")); 

Wie starRatingElement von Browser DOM-Modell entfernen?

Wie kann es in Java mit Selenium WebDriver erreicht werden? Bitte zeigen Sie ein Beispiel.

+0

Nur neugierig ... warum möchten Sie Elemente aus dem DOM entfernen? – JeffC

+0

Ich analysiere die AJAX-fähige Site und bemerke, dass Elemente beim kontinuierlichen inkrementellen Laden von Daten überlaufen – alexanoid

Antwort

10

Sie müssen einen JavaScript-Code ausführen, um DOM-Änderungen vorzunehmen.

WebDriver driver = new ChromeDriver(); 
JavascriptExecutor js; 
if (driver instanceof JavascriptExecutor) { 
    js = (JavascriptExecutor) driver; 
} 
js.executeScript("return document.getElementsByClassName('review-info-star').remove();"); 
+0

Nur eine Anmerkung der Klarstellung ... das entfernt das Element nicht wirklich aus dem DOM, es versteckt es nur (macht es nicht sichtbar). – JeffC

+0

danke, ich benutze element.remove() statt – alexanoid

+0

Danke @JeffC und AlexoNoid für die Korrektur. Ich habe die Änderungen an der Antwort vorgenommen. – JRodDynamite

Verwandte Themen