自动化的网络浏览器?

时间:2009-11-16 01:37:43

标签: c# browser

出于学习目的,我想在浏览器游戏中自动化一些部分,目前我正在尝试填写一些简单的文本框,但没有任何运气。我在表单上创建了一个WebBrowser组件,通过它加载了网站并试了一下。

webBrowser1.Document.GetElementById("citizen_name").SetAttribute("", "myname");

当我点击“填写文本框”按钮时,没有任何反应。 HTML部分如下所示:

<input type="text" name="citizen_name" id="citizen_name" value="" class="field" tabindex="1" /> 

我在谈论eRepublik.com游戏,感谢任何帮助。

4 个答案:

答案 0 :(得分:5)

试试这个:

HtmlDocument document = this.webBrowser1.Document;
document.GetElementById("citizen_name").SetAttribute("value", "myname");

答案 1 :(得分:2)

我通常采用以下方法:

var someElem = webBrowser1.Document.GetElementById("some_id");
if (someElem != null)
{
   someElem.InnerText = "Some value";
}

某些高级编辑器的textareas无法通过这种方式设置其值。要处理它们,我会执行以下操作:

someElem.Focus();
Windows.Forms.SendKeys.SendWait("Some value");

答案 2 :(得分:0)

对于这类问题,有更合适的环境。

最容易使用的绝对是用户脚本。

你想要学到什么?如何测试Web应用程序或如何开发它们?

答案 3 :(得分:0)

您当然可以使用自己在页面中添加的简单javascript,或者更好,使用Greasemonkey ,这样就不会修改“客户端”代码。

但是,只有Firefox,Opera和Chrome才能选择。如果您真的需要一个完整的跨浏览器自动化测试套件,您可以使用Selenium IDE ,它允许记录或编写与网页的一系列交互,这些交互可以自动在任何一个网页中运行它的supported browsers

相关问题