在交互式控制台应用程序的糟糕时代,Don Libes 创建了一个名为 预计, ,这使您能够编写与这些应用程序交互的 Tcl 脚本,就像用户一样。Expect 有两个巨大的好处:

  • 可以编写交互脚本,否则就必须手动重复,单调乏味。一个典型的例子是拨号互联网访问地狱(来自 PPP 之前的日子)。

  • 可以编写脚本来以编程方式测试自己的交互式应用程序,作为回归套件的一部分。

如今,大多数交互式应用程序都在网络上,而不是在控制台上。因此我的问题是:是否有任何工具能够提供以编程方式与网页和 Web 表单交互的能力,就像 Expect 提供以编程方式与控制台应用程序交互的能力一样?

(我所知道的最接近的是 鸡足.)

有帮助吗?

解决方案

您可能正在寻找

其他提示

我用过 RC 与 Python 结合以编程方式驱动网页交互。这使我能够编写相当广泛的用户测试,其中驱动表单和输入并测量它们的结果。

查看 Firefox 上的 IDE(如上所述)。它允许您在浏览器中记录测试并使用 IDE 本身或远程控制应用程序进行回放。

珀尔 机械化 对于这个问题来说效果很好。

HTTPS 和一些身份验证问题有时很棘手。我将在未来发布有关这些问题的几个问题。

我以前做过大量的 Expect 工作,并且一直认为 Don Libes 的 Expect 书是我见过的写得最好、最具启发性的技术书籍之一。

毫无疑问,我想说 Perl 的 WWW::Mechanize 库就是您想要的。我在上面注意到您在查找文档时遇到了困难。有很好的文档!在 search.cpan.org 上查找模块的发行版并查看其中包含的所有内容。有常见问题解答、带有示例的食谱等。另外,我总是能够在网络上获得帮助。如果您无法在此处获取它,请尝试访问 use.perl.org 或 perlmonks.org。WWW::Mechanize 的作者 Andy Lester 是 出现在 Stack Overflow 上. 。(他也是一个全面友好且乐于助人的人。)

我相信 WWW::Mechanize 也有一个类似于 Expect 的 autoexpect 程序的程序:您设置一个代理进程,将该程序作为服务器运行,将浏览器指向它作为代理,执行您想要自动化的操作,然后代理程序为您提供一个 WWW::Mechanize 程序供您用作基础为您的项目。(如果它像 autoexpect 一样工作,您肯定会想从那里进行修改。)

如上所述,WWW::Mechanize 一个恰好是可编程的浏览器(更准确地说,它是一个 Web 客户端或 http 客户端)。上次我查看时,甚至正在进行使其支持 JavaScript 的工作。

除了 Selenium 之外,如果您正在做 Ruby/Rails 的事情,还有 韦伯拉特.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top