I just tested Zombie.js and I let it visit the login page on StackOverflow. My code is as follows:
var Browser = require("zombie");
// Load the page from localhost
browser = new Browser()
browser.visit("http://stackoverflow.com/users/login/", function () {
browser.wait(3000, function (){
console.log(browser.html());
console.log(browser.success);
});
});
I tried looking around, and I know that Zombie.js runs scripts and sort of compresses the HTML, but in this case, the entire body
of the code is missing.
I don't believe this is relevant, but the HTML code returned is:
<html><head>
<title>Log In - Stack Overflow</title>
<link rel="shortcut icon" href="http://cdn.sstatic.net/stackoverflow/img/favicon.ico" />
<link rel="apple-touch-icon" href="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png" />
<link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml" />
<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script><script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.sstatic.net/js/stub.js?v=8a629d6e9fb6"></script>
<link rel="stylesheet" type="text/css" href="http://cdn.sstatic.net/stackoverflow/all.css?v=24fdd40e5473" />
<meta http-equiv="X-XRDS-Location" content="http://stackoverflow.com/yadis" />
<script src="http://cdn.sstatic.net/Js/third-party/openid-jquery.js?v=8b3167d0ee55" type="text/javascript"></script>
<script type="text/javascript">
document.write('<style type="text/css">.login-page .script-only { display: block; }<\/style>');
$(function() {
openid.init('openid_identifier', '', 'http://cdn.sstatic.net/Img/openid/openid-logos.png?v=8', true);
});
</script>
<script type="text/javascript">
StackExchange.init({"stackAuthUrl":"https://stackauth.com","serverTime":1353439370,"styleCode":true,"enableUserHovercards":true,"site":{"name":"Stack Overflow","description":"Q&A for professional and enthusiast programmers","isNoticesTabEnabled":true,"recaptchaPublicKey":"6LdchgIAAAAAAJwGpIzRQSOFaO0pU6s44Xt8aTwc","enableSocialMediaInSharePopup":true},"user":{"fkey":"8074e87bcb0a1a15cc69db799d304930","isAnonymous":true}});
StackExchange.using.setCacheBreakers({"js/prettify-full.js":"c862bf93b3ec","js/moderator.js":"37bba549a03e","js/full-anon.js":"bcd6f2e0d542","js/full.js":"87618162bac4","js/wmd.js":"89ec12ce09df","js/third-party/jquery.autocomplete.min.js":"e5f01e97f7c3","js/mobile.js":"6eb68240242f","js/help.js":"fc9fb0517db2","js/tageditor.js":"450c9e8426fc","js/tageditornew.js":"9ac6c13a3a7f","js/inline-tag-editing.js":"30f72b99548b","js/revisions.js":"8c6bcd93b7fe","js/review.js":"37dd8dc83788"});
</script>
</head>
<body class="login-page" style="cursor: default;"><style type="text/css">.login-page .script-only { display: block; }</style></body></html>
EDIT: Just noticed that this may be caused by the document.write
call in the script of the page.
Using the runScripts: false
option for the browser fixed this because the document.write
overwrote the body.
I've opened an issue on their Github because this isn't the behavior other browsers display.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With