2009-11-16 149 views
0

爲了學習的目的,我想在瀏覽器遊戲中自動化一些部分,目前我正在嘗試填寫一些簡單的文本框,但沒有任何運氣。我在表單上創建了一個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遊戲,非常感謝任何幫助。

+5

黃金養殖,呃? – 2009-11-16 01:42:13

+1

(不管怎樣,你可能應該試試.SetAttribute(「value」,「myname」)) – 2009-11-16 01:43:38

回答

5

試試這個:

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

對於這類問題有更適合的環境。

最容易使用的絕對是userscripts。

你究竟想學什麼?如何測試網絡應用程序,或如何開發它們?

0

你可以使用當然簡單的JavaScript,你包括在你的頁面,或更好的是,使用Greasemonkeyhttp://youngpup.net/z_dropbox/greasespot_favicon.ico,所以你不修改「客戶端」的代碼。

但greasemonkey只會是Firefox,Opera和Chrome的一個選項。如果你真的需要一個完整的跨瀏覽器自動化測試套件,你可以使用Selenium IDEhttp://seleniumhq.org/selenium-favicon.ico,它允許記錄或腳本與網頁的一系列交互,可以在其任何supported browsers自動運行。

2

我通常採取如下方法:

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

的高級編輯人員提供了一些文字區域不能有自己的價值這樣設置的。爲了處理它們,我做了類似以下的事情:

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