我自己找到了解决问题的办法。问题是,当您单击“将页面另存为”->“STRG + S”时,会弹出一个操作系统窗口,该窗口无法由 Selenium 管理。我读到了许多可能的解决方案,使用 AutoIT、xnee、jna 或 Java Robot 等工具。
我不想使用这样的工具。所以我搜索了一个firefox插件,它能够下载整个页面(包括图像,css,html)。几秒钟后我发现剪贴簿 https://addons.mozilla.org/de/firefox/addon/scrapbook/.
最后我下载了插件文件 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();
我希望这可以帮助别人!
编辑:如果您希望剪贴簿也按照默认值保存 JavaScript,则必须更改插件中的文件 saver.js 并将值“script”:false 设置为 true。