Javascript 在Selenium/Python中,如何从父节点中删除/排除选定的子节点?

Javascript 在Selenium/Python中,如何从父节点中删除/排除选定的子节点?,javascript,python,selenium,xpath,Javascript,Python,Selenium,Xpath,比如说,我希望文章不包含to_del(可以包含0个或多个元素)。似乎driver.execute_脚本就是解决方案。但是如何编码呢 article = driver.find_element_by_xpath("//section[contains(@class, 'am-article')] //div[@class='article-layout']") to_del = article.find_elements_by_xpath("./div[contai

比如说,我希望文章不包含to_del(可以包含0个或多个元素)。似乎driver.execute_脚本就是解决方案。但是如何编码呢

article = driver.find_element_by_xpath("//section[contains(@class, 'am-article')] //div[@class='article-layout']")

to_del = article.find_elements_by_xpath("./div[contains(@class, 'am-article__image') or @class='facebook-paragraph' or @class='am-article__source']")

remove()方法从DOM中删除指定的元素

我们使用while和refinding元素来避免在删除节点时DOM发生变化时出现过时的元素错误

to_del = article.find_elements_by_xpath(".//*[ contains(@class, 'am-article__heading' ) or contains(@class, 'am-article__image') or contains(@class, 'facebook-paragraph') or contains(@class, 'twitter-tweet') or contains(@class, 'am-article__source') or contains(@class, 'article-tags') or contains(text(), 'zytaj także:')]")
to_del = article.find_elements_by_xpath("./div[contains(@class, 'am-article__image') or @class='facebook-paragraph' or @class='am-article__source']")
while  len(to_del):
     driver.execute_script("arguments[0].remove()",to_del [0])
     article = driver.find_element_by_xpath("//section[contains(@class, 'am-article')] //div[@class='article-layout']")
     to_del = article.find_elements_by_xpath("./div[contains(@class, 'am-article__image') or @class='facebook-paragraph' or @class='am-article__source']")