2011-12-13 23 views
0

私はユニットテストを試しています。私はNunitとWatiNを使ってテストを行い、WatiN Test Recorderを実装しようと決めました。誰もがそれに精通しているかどうかはわかりませんが、私は2.0ビルド(ベータ版)を使用しています。次のコードをテストレコーダーからdirecltlyに引っ張ってわずかにきれいにしました。WatiN - 失敗:System.UriFormatException:無効なURI:ホスト名を解析できませんでした

[TestFixture, RequiresSTA] 
class WatiNTesting 
{ 
    [Test] 
    public void WatiNTest() 
    { 
     IE window = new IE("http://www.google.com"); 
     TextField txt_q = window.TextField(Find.ByName("q")); 
     Element Locate = window.Element(Find.ByText("") && Find.ByValue("") && Find.ById("") && Find.BySrc("") && Find.ByUrl("")); 
     Link lnk_wwwvietnamesetestingboardorgzbxemiddownloadcategory197510 = window.Link(Find.ByUrl("http://www.vietnamesetestingboard.org/zbxe/?mid=download&category=197510")); 

     txt_q.TypeText("Watin"); 
     Locate.Click(); 
     lnk_wwwvietnamesetestingboardorgzbxemiddownloadcategory197510.Click(); 
     window.Dispose();    
    } 
} 

私はそれを実行するために行くたびに、ウィンドウは、その後Nununitをgoolgeために開くには、このエラーを返します:

Failure: System.UriFormatException : Invalid URI: The hostname could not be parsed. 

誰もがこのエラーを取り除く方法を知っている、またはそれを回避する方法はありません?

答えて

0

[OK]を、最初の問題は、この行のFind.ByUrlコールであるように思わ...

Element Locate = window.Element(Find.ByText("") && Find.ByValue("") && 
    Find.ById("") && Find.BySrc("") && Find.ByUrl("")); 

...

Element Locate = window.Element(Find.ByText("") && Find.ByValue("") && 
    Find.ById("") && Find.BySrc("")); 
を、それを削除し、それが渡されます。あなたがここで達成しようとしていることは本当にわかりませんが、これが役立つことを願っています。

+0

をそれはWatiNテストレコーダーによって提供されたもの、私ではありません...私はレコーダーが私の人生を容易にするだろうと思ったが、それだけで作られたようですそれはより複雑なhahaです。しかし、その行を削除しても機能しませんでした。同じエラー。 –

0

これは、?あなたのURLの文字と検索操作

を行いながら、WatiNは内部動作方法あなたは、これはURLを見つけるための正規表現のオーバーロードを使用してエスケープします。この

Link lnk_wwwvietnamesetestingboardorgzbxemiddownloadcategory197510 = window.Link(Find.ByUrl(new Regex(@"^http://www.vietnamesetestingboard.org/zbxe/\?mid=download&category=197510$"))); 

をしようとする場合がありますか?キャラクター。

+0

まだ動作していません。アプリケーションは、Googleウィンドウを開いてWatiNでタイプし、約1分後にこのメッセージを返します: "失敗:WatiN.Core.Exceptions.ElementNotFoundException:条件に一致する要素タグを見つけることができませんでした: '' '属性' innertext 'が'^* * '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'と同じ属性' src 'はhttp://www.vietnamesetestingboard.org/zbxe/の' ''と同じですか? document_srl = 432065(内部例外:アクセスが拒否されました。) –

+0

DOMをクリックしようとしたときにそのsrc属性とのリンクがありますか?^と$をRegexから削除してみてくださいそれは助けになるかもしれませんが、あなたが今見ている例外は、あなたがクリックしたときにDOMに存在しないリンクをクリックしようとしているからです。無効な文字のために失敗します(REGEX内で使用される場合)。 –

1

は、あなたがこのような何かを見つけたことがあります:

Link link = window.Link(Find.By("rawurl", "http://www.vietnamesetestingboard.org/zbxe/?mid=download&category=197510")); 
関連する問題