做Web脚本/ Web宏的最佳方法是什么?

时间:2020-03-05 18:58:26  来源:igfitidea点击:

我正在尝试简化工作场所的某些任务,而且似乎很多开发人员的时间都花在了网络上的半机械任务上(特别是编辑使用基于Web界面的在线商店) )。因此,我一直在研究一些解决方案,这些解决方案可以通过脚本完成这些任务,因为我认为这样做可以为我们节省大量时间。因此,在我真正开始研究其中任何一个之前,我只是想知道Stack Overflow社区是否对哪种Web脚本/宏解决方案是最好的有任何建议。

要求如下:

  • 必须能够与Web表单进行交互(不仅仅是下载页面和抓取文件-脚本必须在Web表单中编辑控件,然后提交该表单)
  • 我们必须编辑的表单是安全的表单,因此脚本解决方案必须能够处理该问题(即,如果人类不得不坐在那里观看并手动重新放置,那么拥有强大的脚本解决方案对我们来说是没有用的-每隔几分钟登录一次)
  • 如果它可以读取本地文件并对它们进行一些基本的字符串替换/操作,那将是非常,非常,非常可取的(例如,最好在文本文件中包含变量列表或者一些HTML代码,然后再编写脚本)将代码" STORENAME"替换为特定商店的名称,然后再将代码插入表单)

到目前为止,以下是我备受关注的脚本解决方案(尽管我曾与Chickenfoot合作,但我并未真正研究过其中的任何脚本):

  • 鸡脚
  • 适用于Firefox的iMacros
  • libwww-perl
  • unix和C的libwww(在为perl搜索libwww时遇到了这个问题,直到现在我还不知道存在)
  • 更"通用"的宏解决方案,例如AutoHotKey

Stack Overflow上的任何人都尝试过这些解决方案吗?如果是这样,我们喜欢或者不喜欢它们什么?谁能推荐一个不在名单上的人? (这绝不是排他的或者详尽的列表)。我真的很想自动化我们的许多机械过程,并希望Stack Overflow社区可以帮助我们,以便我们可以避免工作中很多令人费解的事情:)。

编辑:回复:平台我们主要使用WindowsXP终端,但是1)我们确实有几台Mac测试PC,因此OS X是一个可行的选择,以及2)如果这意味着要自动化很多这些任务,我将如果需要,请构建一个Linux机器。因此,平台几乎不是问题。

解决方案

回答

我真的很喜欢watir框架(在ruby上运行)-可编程,简单,使用IE来自动化Web(这样我们就可以获得真正的浏览器行为)。当然,它仅是Windows-我们没有指定是否使用它。

我们已经使用了watir来自动化对Webapp的测试,我们对此感到非常满意。

回答

@Asaf Bartov,实际上,Watir不仅是Windows。还有适用于Windows,Linux和Mac的FireWatir,以及适用于Mac的SafariWatir。

http://wtr.rubyforge.org/
http://wiki.openqa.org/display/WTR/FireWatir
http://safariwatir.rubyforge.org/

回答

一些建议:

  • 编写Firefox扩展
  • 编写一个Greasemonkey脚本
  • 编写一个无处不在的脚本

编辑:我假设它们将在包含我们要提交到表单的数据的网页上起作用。

回答

如果我们使用的是libwww-perl,请不要就此停止。使用WWW :: Mechanize,它是LWP的包装,可以完成我们想要的浏览器交互。缺点:它还不能处理JavaScript。

WWW ::机械化主页

回答

我实际上是Chickenfoot的忠实拥护者,最近我开始大量使用它来为另一个Firefox扩展Zotero提供脚本功能。

回答

另一种选择是使用AutoIT + Firefox + mozrepl + FF.au3. 由于AutoIT在浏览器之外运行(它本身是一种出色的自动化工具),因此功能强大,因此我们可以提交多个浏览器表单而不会丢失上下文。然后,FF.au3脚本使我们可以通过AutoIT3简单地控制Firefox。

回答

我们使用我们提到的iMacros工具取得了成功:

Firefox + iMacros

请注意,它也是免费的IE插件!这样做的好处是,两个浏览器都可以使用完全相同的宏。恕我直言,对于快速轻松地进行Web测试和常规Web自动化非常有用。

提姆

回答

使用:

Firefox + iMacros获取:
转到我们喜欢的页面(例如yahoo.com),使iMacro成为焦点,点击记录并搜索
一些文字。显示第一页时,将页面保存在文件中。
现在我们有了想要的页面。
至此,我们已经完成了获取操作。
保存宏并为其命名。
下次我们可以运行刚刚保存的宏。
然后,我们可以使用以下代码清理获得的html代码:

# this is php, do the proper thing in the language of your choice
# one or more spaces is equal to one space, remove tab, return  ...etc.
return ereg_replace(' +', ' ', trim(preg_replace("/(\r\n|\r|\t|\n|\'|\")/s", '', $string)

现在,我们将获得一个干净的html页面,其中包含一行,一行很长。
现在,我们可以使用regEx随意剪切和切片。
要知道的事情:
如果需要完全自动化,则可以通过cronjob(命令行)在firefox中启动宏。

回答

我对IMacros的印象是我们需要付费才能解锁很多东西,所以我选择了Chickenfoot。不幸的是,Chickenfoot邮件列表最近非常安静,因此对其未来不抱有信心...

回答

我正在使用iMacro / .net进行数据提取项目。我喜欢iMacros的脚本编写简易性,这一点很重要,因为该应用程序最多可以从60多个网站中提取数据。对于此项目,运行iMacros的间接费用值得节省的开发时间。这不是理想的解决方案,但是它是与另一个网站的数据进行交互的一种方式,前提是它们没有提供适当的接口。整洁的地方是,我创建了一个由iMacros scraper组成的小型服务器集群,以帮助分配负载。现在,用户可以通过网站访问临时请求的应用程序服务器,但最终我希望它发展成为更加流畅的产品线。

回答

我是硒的忠实粉丝

http://www.seleniumhq.com

尽管可以通过脚本支持(多种语言)来设计来处理自动化的浏览器测试,但是我们可以设计宏模板,这些模板将根据变量填写表格等

还:有人知道可以与Flash一起使用的好宏吗?似乎javascript无法跨越那条线

回答

Firefox的iMacros是免费的,这就是我们所需要的!它可以自动执行任何浏览器活动,并且可以正常工作!它也可以读/写外部数据填写表格,等等。我是这个Firefox添加组件的忠实支持者!