Ruby - Watir - 使用解释的js获取HTML

时间:2014-04-14 12:13:22

标签: javascript html ruby watir

在我的ruby文件上执行此操作后:

 browser = Watir::Browser.new
 browser.goto 'anyWebsite.com'

 puts browser.html > "~/index.html"

我获得了一个HTML代码但是使用了非解释的JavaScript。 例如,我得到类似的东西:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

我的问题是,如何在js解释之后获得HTML

1 个答案:

答案 0 :(得分:2)

使用html方法时,您将获得当前的DOM - 即javascript解释后的HTML。

例如,使用包含javascript的简单html页面添加按钮:

<html>
  <body>
    <script>
      var btn=document.createElement("BUTTON");
      document.body.appendChild(btn);
    </script>
  </body>
</html>

当你进入页面并获得浏览器html时,你可以看到它还包括javascript添加的按钮(参见第二行的末尾) - 即html是在javascript被解释之后:< / p>

browser.html
#=> <html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>
#=>     <script>
#=>       var btn=document.createElement("BUTTON");
#=>       document.body.appendChild(btn);
#=>     </script><button></button>
#=> </body></html>

同样,您可以看到特定元素的html也在解释之后:

browser.body.html
#=> <body>
#=>     <script>
#=>       var btn=document.createElement("BUTTON");
#=>       document.body.appendChild(btn);
#=>     </script><button></button>
#=> </body>