2011-01-29 7 views
2

HtmlUnitをちょっとやめてしまいました。特にこのウェブサイトには、慣れたいと思っていた機能がいくつかあります。私はそれについて前に投稿しましたが、それは主に成功したサイトから情報を取得するためのものでした。今私はフォームに記入して提出したいと思っています。HtmlUnit - フォーム、チェックボックス、テキストフィールド、および送信ボタンの選択

現在のテストコード:

def url = "http://www.hidemyass.com/proxy-list/" 


client = new WebClient(BrowserVersion.FIREFOX_3) 
client.javaScriptEnabled = false 

page = client.getPage(url) 
form = page.getFormByName("proxyform") 

//get portInputField and set value 
portField = form.getInputByName("p") 
portField.setValueAttribute("80") 

//select checkbox 1 & 2 from anonymity level 
//click "Update Results" 
//get new page url 
//grab information 
//save 

私が何をすべきかがわからないよどこコメントアウトセクションがあります。私は先に進み、試みたが、私が何をすべきかについての質問をしたいと思う。

試み:

def url = "http://www.hidemyass.com/proxy-list/" 

page = client.getPage(url) 

portField = page.getHtmlElementById("ports").setValueAttribute("80") 

submitButton = page.getByXPath("/html/body//form//input[@type='image']") 
page2 = submitButton.get(0).click() 

println page2  

上記のスニペットはプリントアウト:HtmlPage(http://www.hidemyass.com/proxy-list/search-1)@17168934

I新しいページを探して、検索の情報を解析することができます。何か案は?

私が使用している言語があまり差をつけてはいけないとは思いません。しかし、私はGroovyを使用しています。​​かの操作を行います。私が探している情報だけを取得する方法はあり

HtmlPage(http://www.hidemyass.com/proxy-list/search-1)@23713629 
<?xml version="1.0" encoding="UTF-8"?><td>109.123.00.00</td> 

EDIT

私は私が欲しかったものを得ることができたが、それはそうのように返します。私はそれから手動で情報を削除する必要がありますか?

EDIT

.asText()私の問題を解決しますが、CSSに関するかなりの数の警告を与えました。私は心配すべきですか?

答えて

2

私が探しているだけ の情報を取得する方法があります: 109.123.00.00または私はちょうど それは手動で から情報を削除する必要がありますが?

これは動作するはずです:

def td = page2.getElementByName("td") 
assert td.textContent == "109.123.00.00" 

ページから情報を抽出する他の方法についてHtmlPageのJavaDocを参照してください。手動でページを解析しないでください。

サイドノート:既にGroovyを使用しているので、HtmlUnitよりも便利なGroovyベースのWeb自動化およびテストツールであるGebを見ることができます。

+0

笑私のコードを捨てていた宣言されていない変数がありました。 (私は戻ってきて、何度も何度も編集して、削除したことを認識していませんでした。私はそれを最後の部分として編集しました。 'Geb'について言及すると、私はそれをチェックしますが、ちょっとHtmlUnitに慣れ始めています。 – StartingGroovy

関連する問題