2011-10-05 10 views
2

私は、一例として、同じロジックを使用してWebクライアントを使用して、これは私のMVC3かみそりで完璧に動作していますJavaからhtmlUnit(.NETで動作するように変換される)Details here
を使用していますコード/ビュー。
Webクライアントがそのページにアクセスできないため、[Authorize]が自分のビューより上にあるときに問題が発生します。これを回避する方法はありますか?どうすれば自動的にログオンするように設定できますか?

htmlunit .NET MVCのビュー単体テスト

[SetUp] 
     public void Setup() 
     { 

      //Initiate WebClient 
      webClient = new WebClient(); 

      //Login 
      var loginPage = (HtmlPage)webClient.getPage(properties.DomainNameToTest + "Account/Logon/"); 
      ((HtmlInput)loginPage.getElementByName("UserName")).setValueAttribute(properties.adminUsername); 
      ((HtmlInput)loginPage.getElementByName("Password")).setValueAttribute(properties.adminPassword); 
      var action = (HtmlPage)loginPage.getElementByName("loginButton").click(); 

     } 

をこれが正常に動作します:私はちょうどログインページを解析し、管理者/パスワードを提出しなければ...これは私が試してみました。この「セッション」

に訪問したすべてのページに引き継がれます。

+0

すべての試行で失敗しますか?あなたが受け取っている特定のエラーは何ですか? – wllmsaccnt

答えて

1

HtmlUnitはウェブブラウザです。グラフィカルユーザーインターフェイスはありません。コードを使用して何をすべきかを伝える必要があります。通常のWebブラウザを使用してページにアクセスできる場合は、HtmlUnitを使用して同じことを行い、期待どおりに動作します。

+0

これを行う際の私の試みを反映するためにオリジナルの投稿を編集しました。 – JustAnotherDeveloper

+0

ログイン後、同じWebClientインスタンスを使用して他のページを参照する必要があります。新しいWebクライアントを使用することは、新しいブラウザプロセスを開始することに似ています(つまり、IEを使用して認証した後にFirefoxを使用してページをブラウズする) –

関連する問題