Selenium - 保存网站,包括所有图像,css,dom

Selenium - Save website including all images, css, dom

我想使用 firefox 或 chrome 访问带有 selenium 的页面。加载页面后,我想从页面下载所有图像 css、dom。

我想像在以下位置找到它们一样存储每张图像:

chrome -> Tools->Development Tools -> Resources -> Images 

是否可以通过 selenium 访问并保存所有内容?

到目前为止我只找到这个页面,对我来说没有有趣的提示: http://ldanswers.org/wordpress/zisser/2014/11/24/save-whole-web-page-with-all-resources-in-selenium-webdriver/

我自己找到了解决问题的方法。问题是当您单击页面另存为 -> STRG + S 时会弹出 OS-Window,Selenium 无法对其进行管理。我阅读了有关使用 AutoIT、xnee、jna 或 Java Robot.

等工具的许多可能解决方案

我不想使用这样的工具。所以我搜索了一个能够下载整个页面(包括图像,css、html)的 firefox 插件。几秒钟后我发现 Scrapbook.

最后我下载了Addon File scrapbook-1.5.11-fx.xpi,修改了其中的一些值并与selenium一起使用。效果很好。

我在 /defaults/preferences/scrapbook-prefs.js 更改的值是

pref("scrapbook.data.default", false);
pref("scrapbook.data.path", "/Path/to/store/webpage");
pref("scrapbook.key.save", "D");

此配置告诉剪贴簿将网页保存在定义的路径,保存页面的快捷方式是STRG + SHIFT + D

现在你只需要将插件添加到firefox配置文件,调用一个网站并将快捷方式发送到浏览器即可。

FirefoxProfile oProfile = new FirefoxProfile();
        File extension = new File("scrapbook-1.5.11-fx.xpi");
        try {
            oProfile.addExtension(extension);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        WebDriver driver = new FirefoxDriver(oProfile);
        driver.get("https://google.com");
        new Actions(driver).sendKeys(Keys.chord(Keys.CONTROL,Keys.SHIFT, "D")).perform();

我希望这对某人有所帮助!

编辑:如果您希望剪贴簿也按默认保存 Java脚本,您必须更改插件中的文件 saver.js 并将值 "script" : false 设置为 true。