2012-11-20 2 views
5

방금 ​​Zombie.js를 테스트했으며 StackOverflow의 로그인 페이지를 방문하게했습니다. 다음과 같이 내 코드입니다 : 나는 주변을 두리번 시도Zombie.js가 완전한 HTML을 반환하지 않습니다.

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); 
    }); 
}); 

, 나는 Zombie.js 스크립트를 실행 종류의 HTML을 압축하지만이 경우, 코드의 전체 body가없는 것을 알고있다. 나는 이것을 믿지 않는

관련이 있지만, 반환 된 HTML 코드는 다음과 같습니다

<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> 

편집 : 그냥이이 페이지의 스크립트에서 document.write 호출에 의해 발생할 수 있습니다 것으로 나타났습니다.

답변

5

브라우저에 runScripts: false 옵션을 사용하면 document.write이 본문을 덮어 써서이 문제를 해결할 수 있습니다.

an issue on their Github이 (가) 다른 브라우저에서 표시되는 동작이 아니므로 열었습니다.

+0

확인 된 브라우저 = 새 브라우저 ({runScripts : false}); – 4m1r

관련 문제