2011-10-05 30 views
2

我使用的HtmlUnit從Java(轉換爲.NET運行)Details here
我用同樣的邏輯爲例,使用Web客戶端和這個完美的作品與我的MVC3剃刀代碼/視圖。
當我的視圖上方有[Authorize],因爲它們的webclient無法訪問該頁面時,就會出現問題。有沒有解決的辦法?我將如何(如果可能)將其設置爲自動登錄?如果我只是解析登錄頁面,做一個具有管理員/密碼提交..這將結轉到這個「會話」.NET的HtmlUnit次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實例來瀏覽其他頁面。使用新的WebClient類似於開始一個新的瀏覽器進程(即,使用IE瀏覽器進行身份驗證後使用Firefox瀏覽頁面) –