【问题标题】:Web automation using C# WebBrowser使用 C# WebBrowser 实现 Web 自动化
【发布时间】:2013-02-13 12:15:32
【问题描述】:

我正处于尝试从网站自动输入和收集数据的早期阶段。我有一个 16,000 行的 CSV 文件。对于每一行,我想将该行中的数据输入网页上的textarea。然后,该网页可以使用该数据执行一些计算并吐出我收集的答案。具体来说,在网页http://www.mirbase.org/search.shtml,我想在底部的序列文本框中输入一个序列,点击“Search miRNAs”按钮,然后在下一页收集结果。

我现在的计划是使用 C# WebBrowser。我的理解是,我可以通过idname 或坐标访问HtmlDocument 中的各个元素。最后一个选项并不理想,因为如果我将这个程序分发给其他人,我不能确定他们会在相同的坐标下使用。至于其他2个选项,textarea有一个name,但它与表单名称相同,所以我不知道如何访问它。我想点击的按钮既没有name 也没有id

有人对如何访问我需要的元素有任何想法吗?我绝不会使用这种方法,所以如果有更简单/更好的方法,我当然愿意接受建议。

【问题讨论】:

    标签: c# html .net webautomation


    【解决方案1】:

    WebBrowser 类不是为此而设计的,因此您会提出问题。

    您需要研究一种专为网络自动化而设计的工具。

    由于您使用的是 C#,Selenium 具有一组出色的 C# 绑定,它可以解决您的问题,因为您将使用不同的定位器(专门通过 CSS 选择器或 XPath 定位元素)。

    http://docs.seleniumhq.org/

    【讨论】:

      【解决方案2】:

      检查 mshtml - Mshtml on msdn

      您可以将它与 WebBrowser 对象一起使用。

      在您的项目中添加 Microsoft.mshtml 引用并在您的类中添加 using mshtml 声明。

      使用 mshtml,您可以轻松设置和获取元素属性。

      【讨论】:

        猜你喜欢
        • 2011-03-23
        • 1970-01-01
        • 2012-01-10
        • 1970-01-01
        • 2017-11-13
        • 2022-01-07
        • 2015-07-06
        • 2017-03-29
        • 2023-03-05
        相关资源
        最近更新 更多