机械化的局限性是什么?机械化和watir之间有什么区别

时间:2011-11-02 16:28:13

标签: ruby mechanize watir watir-webdriver

我正在使用mechanize来废弃一些网页。

  • 我需要知道什么是机械限制?什么机械化不能做?
  • 可以执行网页中嵌入的javascripts吗?
  • 我可以用它来调用javascript函数吗?我认为不可以。我认为Watir可以。
  • 它与watir有什么区别?

1 个答案:

答案 0 :(得分:13)

机械化可以做很多事情。它使用net / http所以无论你使用net / http做什么,你都可以用机械化做。虽然它根据描述支持更多:

  

Mechanize库用于自动与网站交互。 Mechanize自动存储和发送cookie,遵循重定向,可以跟踪链接和提交表单。可以填充和提交表单字段。 Mechanize还会跟踪您作为历史记录访​​问过的网站。

查看此链接,了解有关使用机械化javascript的一些信息:here

如果机械化支持特定的功能/任务而不是通过一切,那么告诉你会容易得多。你到底想要做什么?

Javascript是机械化无法做到的一件事。它大部分时间支持的一件事是显示Javascript链接。即使用page.links.each {|link| puts link.text}也会显示Javascript,但您无法点击/选择它们。

简单来说,Watir支持Javascript。它实际上是您的浏览器支持javascript和Watir控制浏览器。

Watir运行真正的浏览器(FF,Chrome,IE)并以编程方式控制该浏览器。它的行为与用户访问网站时的行为完全相同。这使您可以使用javascript。 Watir仅控制浏览器,浏览器是发送请求并获取响应并呈现/处理所有浏览器的浏览器。您受到所用浏览器速度的限制。

另一方面,机械化就像它自己的'浏览器'一样,并且比Watir快得多,因为它不会渲染页面。它直接与服务器对话,并处理原始响应。机械化受到连接速度的限制。

当您需要观看并查看正在发生的事情,使用javascript或执行与GUI相关的任何操作时,Watir将用于Mechanize。 Mechanize更快,更适合测试网站的实际结构。 (测试链接/登录/等)