【问题标题】:Emulating a web browser模拟网络浏览器
【发布时间】:2010-04-06 18:49:07
【问题描述】:

我们的任务基本上是模拟浏览器来获取网页,并希望在不同的网页上自动进行测试。这将用于(理想情况下)在后台运行并生成报告的控制台式应用程序。

我们尝试使用 .NET 和 WatiN 库,但它是基于 Marshalled IE 构建的,因此它缺乏许多我们通过调用非托管本机代码侵入的功能,但归根结底 IE 不是线程安全也不是进程安全,而且许多需要的功能只能通过更改注册表值来实现,而且非常不灵活。

  • 代理支持
  • JavaScript 支持 - 我们必须能够在任何 javascript 执行后解析实际的 DOM(并希望引发一个事件来处理任何 ajax 调用)
  • 能够将页面的全部内容(包括已加载页面缓存中的图像)保存到单独的位置
  • 能够清除 cookie/缓存、获取 cookie/缓存等。
  • 能够为任何浏览器调用设置标题和更改发布数据
  • 进程和/或线程安全将是理想的
  • 对于 drogs 的热爱,一个并不完全神秘的 API

可接受的语言 C++、C#、Python,任何可以是简单的小后台应用程序的语言,在某种程度上可以忍受,并且没有像 Ruby 那样完全“非传统”的语法。

根据我自己的研究,相信我在 google 搜索方面很糟糕,我听说过关于 WebKit 的好消息... Qt 模块 QtWebKit 会处理所有这些吗特点?

【问题讨论】:

  • 我不太了解它是否会有所帮助,但是在 VS 2010 的某些版本中,有一些称为“手动测试”的东西可以让您记录与网页的交互。然后,您可以深入研究代码并自动化测试,据说我被告知它记录的内容是在 http 级别。因此,您的测试代码将在相当低的水平上运行。我不知道生成的代码可能有多混乱。
  • 您不需要对 IE 进行真正的注册更改;您可以告诉 IE 使用替代根目录。

标签: c# .net c++ python qt


【解决方案1】:

【讨论】:

    【解决方案2】:

    我知道你提到你不喜欢 Ruby 语法(我也不喜欢),但我不得不插嘴说 Watir 可能是你想要做的最好的事情。

    编辑:似乎有一个 Java 对应部分,称为 Watij

    【讨论】:

    • 是的,这就是我们所看到的,但我们已经落后于截止日期,无法学习语法,更不用说客户端的部署问题了。我们需要一个在今天的加班状态下准备好的临时解决方案。我猜 Ruby 可能会被编译成一个独立的 exe,如果没有别的,我们可能最终不得不使用 Watir。
    • “目前 Watij 仅支持 Windows 上的 Internet Explorer 自动化。未来计划支持其他公司,如 Mozilla。” - 是的,建立 IE 注定要失败! >.
    • @Sean Ha,我没注意到
    【解决方案3】:

    我自己最近才开始研究这个,所以我不能说这可以满足你列出的所有问题,但请查看 GeckoFx

    来自网站:GeckoFX 是一个开源组件,它可以轻松地将 Mozilla Gecko (Firefox) 嵌入到任何 .NET Windows 窗体应用程序中。 GeckoFX 用干净、完整注释的 C# 编写,是默认的基于 Internet Explorer 的 WebBrowser 控件的完美替代品。

    至于我自己的印象:它在性能和稳定性上都超过了默认的 .NET WebBrowser。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2014-02-23
      • 2011-07-03
      • 2013-03-19
      相关资源
      最近更新 更多