Javascript 在Selenium/Python中,如何从父节点中删除/排除选定的子节点?
比如说,我希望文章不包含to_del(可以包含0个或多个元素)。似乎driver.execute_脚本就是解决方案。但是如何编码呢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
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']")