使用C#WebBrowser进行Web自动化

时间:2013-02-27 15:49:15

标签: c# html .net webautomation

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

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

有没有人对如何访问我需要的元素有任何想法?我绝不会采用这种方法,所以如果有更简单/更好的方式,我肯定会接受建议。

2 个答案:

答案 0 :(得分:4)

WebBrowser课程不是为此设计的,因此您提出问题的原因。

您需要查看为网络自动化设计的工具。

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

http://docs.seleniumhq.org/

答案 1 :(得分:0)

检查mshtml - Mshtml on msdn

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

将Microsoft.mshtml引用添加到您的项目中,并在您的类中使用mshtml声明。

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