我不是使用Selenium来自动化测试的,而是自动保存注入内容的AJAX页面,即使它们需要事先的身份验证才能访问。
我试过了
tl;dr:我尝试了多种工具来下载使用AJAX的站点,但放弃了,因为它们很难使用,或者根本不起作用。在试用WebHTTrack (它的用户界面无法在我的Ubuntu +上启动)、wget (它没有下载页面中包含的样式表脚本)、wget(它没有下载我的页面中包含的任何样式表脚本)之后使用WebHTTrack(它的GUI无法在我的Ubuntu+上启动)。然后,我终于放弃了在有前途的职位上使用一个名为乌鸦的Mozilla XULRunner AJAX刮刀,只是在我身上出了点问题。所以..。
最后在NodeJS和Selenium-WebdriverJS中制造了我自己的坏东西
我的NodeJS脚本使用selenium-webdriver模块 (即“官方支持的主要项目” )来:
现在,当我在本地查看我的测试页面时,我会看到多个页面元素的两倍,因为目标站点每次加载时都会将HTML片段加载到页面中。我现在用这个下载我的目标页面:
var $;
var getTarget = function () {
driver.getPageSource().then(function (source) {
$ = cheerio.load(source.toString());
});
};
var targetHtmlDest = 'test.html';
var writeTarget = function () {
fs.writeFile(targetHtmlDest, $.html());
}
driver.get(targetSite)
.then(authenticate)
.then(getRoot)
.then(downloadResources)
.then(writeRoot);
driver.quit(); 问题是,我得到的页面源是已经修改过的页面源,而不是原始的页面源。试图在alert("x");window.stop();中运行driver.executeScript()没有任何作用。
发布于 2014-11-26 17:00:55
也许使用Curl来获取页面(您可以通过命令中的身份验证)将获得裸源吗?否则,您可以在测试浏览器上关闭JavaScript,以防止JS操作触发。
https://stackoverflow.com/questions/25173294
复制相似问题