Selenium page_source不返回修改后的DOM树

时间:2014-10-27 09:11:55

标签: javascript python dom selenium-webdriver

我想弄清楚在将NoScript / ghostery等插件应用到某个网页之前和之后的更改。 NoScript / ghostery阻止跟踪器和广告商的脚本并将其从DOM树中删除(例如,我在Firefox中“启用”NoScript之前和之后浏览cnn.com时检查了它是“http://a.visualrevenue.com/vrs.js”。但是,如果我使用selenium的browser.get_source转储DOM树,“http://a.visualrevenue.com/vrs.js”仍然存在。我在这个过程中使用以下代码:

import pickle
from selenium import webdriver

fp = webdriver.FirefoxProfile(../<extension/addons/>)
browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://www.cnn.com")
html_source = browser.page_source
f = open("cnn.p", "wb")
pickle.dump(html_source, f)
selenium的get_source获取源文档说它被修改(在我的情况下由NoScript修改)DOM树但我无法弄清楚如果发生这种情况。如果有人可以评论如何使用selenium或任何自动化工具修改(通过插件)DOM树,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试了几种方法后,终于解决了我的问题。我使用webdriver.execute_script(“return document.documentElement.outerHTML”)来转储呈现的HTML,而不是使用webdriver.page_source(输出'html source')。