WebDriver从页面中删除元素

ale*_*oid 18 java selenium-chromedriver selenium-webdriver

我正在使用Selenium WebDriver(ChromeDriver).我需要在处理后从DOM中删除一些元素(来自DOM模型).

例如,我有以下元素:

WebElement starRatingElement = reviewElement.findElement(By.className("review-info-star"));
Run Code Online (Sandbox Code Playgroud)

如何starRatingElement从浏览器DOM模型中删除?

如何使用Selenium WebDriver在Java中实现它?请举例说明.

JRo*_*ite 21

您必须执行JavaScript代码才能进行任何DOM更改.

WebDriver driver = new ChromeDriver();
JavascriptExecutor js;
if (driver instanceof JavascriptExecutor) {
    js = (JavascriptExecutor) driver;
}
js.executeScript("return document.getElementsByClassName('review-info-star')[0].remove();");
Run Code Online (Sandbox Code Playgroud)

  • getElementsByClassName()返回一个HTMLCollection,该HTMLCollection没有remove方法,可以使用document.getElementsByClassName(review-info-star)[0] .remove()。 (4认同)
  • 只是说明一下...实际上并没有从DOM中删除该元素,而是将其隐藏(使其不可见)。 (2认同)
  • 谢谢,我改用element.remove() (2认同)
  • 您可以使用:`document.querySelectorAll('.review-info-star').forEach(function(element) {element.remove();});` (2认同)