【问题标题】:c# ways to render a webpage and navigate/manipulate its DOM?c# 渲染网页和导航/操作其 DOM 的方法?
【发布时间】:2014-11-12 21:42:57
【问题描述】:

我对 DOM+HTML 等有很好的了解,但我是 c# 新手,目前下载然后渲染(执行所有 javascript + DOM 更改等)并在 c# 中模拟用户与网页交互的最佳方式是什么?

我已经多次看到 HTML 敏捷包被提及,但它看起来好像自 2012 年 8 月以来没有更新?有没有人最近使用过这个并遇到任何问题? c# 是否为此内置了任何东西?

谢谢!

【问题讨论】:

  • 您只是想自动测​​试网站吗?这就是我从“用 c# 模拟用户与网页的交互”这句话得到的结果
  • 长话短说,我基本上是想让我的应用程序控制一个网页(点击按钮、阅读链接、阅读按钮),因为我们的客户希望应用程序与之交互的网站没有API,他们暂时不愿意做一个。
  • 呃,那会很痛苦。有很多测试框架能够“点击”并在网站上执行操作,但它们并不是真正用于生产环境来实际执行实际任务。我认为您将很难实现这一点。有没有其他途径可以完成你想做的事情?大多数 html-agility-pack 用于解析和操作 HTML 和更改 DOM,但实际上并不对其执行操作。

标签: c# dom html-agility-pack msdn


【解决方案1】:

首先 HTMLAgilityPack 它不是用来模拟网页中的用户交互,HTMLAgilityPack 是一个敏捷的 HTML 解析器,它构建一个读/写 DOM 并支持普通的 XPATH 或 XSLT(实际上你不必了解 XPATH 或 XSLT使用它,别担心...)。

HTMLAgilityPack 不支持 JavaScript,这是非常重要的一步,因为许多开发人员在浏览器中完全加载页面以及 HTMLAgilityPack 或您用来发出请求的任何库发出的请求时遇到麻烦。

对于用户交互、网页的满载、网络测试我强烈推荐你Selenium,Selenium 自动化浏览器。 Selenium 支持多种编程语言(Java、C#、Ruby、Python 等),您可以在上面的链接中阅读更多内容以及非常好的文档。

Selenium 唯一的缺点是它需要打开浏览器才能工作,但它可以在某些环境中模拟运行无头浏览器,您可以在以下链接中阅读更多相关信息:

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 2014-05-12
    • 2016-04-17
    • 2020-08-12
    • 2010-12-18
    • 2019-04-27
    相关资源
    最近更新 更多