2012-11-02 111 views
1

我運行像下面不能使用華廷

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using WatiN.Core; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     [STAThread] 
     static void Main(string[] args) 
     { 
      IE ie = new IE(); 

      // point it to http://www.google.com 

      ie.GoTo("http://www.google.com"); 

      // fill the search box 

      ie.TextField(Find.ByName("q")).TypeText("WatiN"); 

      // performs click event 

      ie.Button(Find.ByValue("Google Search")).Click(); 
     } 
    } 
} 

這是不工作很簡單的華廷控制檯應用程序。一個彈出窗口說,有一個文件丟失.exe。我無法理解,因爲它只是一個控制檯應用程序。爲什麼我需要.exe文件?

+0

「visual studio無法開始調試,因爲調試目標D:\ .... \ consoleapplication1.exe丟失。請構建項目並重試或設置輸出路徑和AssemblyName屬性以指向正確的位置對於目標程序集「 –

+0

非常感謝,它在將目標.net框架從4.0更改爲3.5之後起作用。這真是奇蹟 –

回答

1

如果你想爲WatiNWeb應用程序測試通過的Internet Explorer使用,確保先完成正確的配置。

NUnit不使用STA apartment state在線程中運行測試;它採用multithreaded apartment (MTA),但這不是一個大問題,您可以配置文件附加到NUnit測試項目,並指定單元狀態模式下,你要這樣說:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="NUnit"> 
      <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/> 
     </sectionGroup> 
    </configSections> 
    <NUnit> 
     <TestRunner> 
      <!-- Valid values are STA, MTA. Others ignored. --> 
      <add key="ApartmentState" value="STA" /> 
     </TestRunner> 
    </NUnit> 
</configuration> 

文章參考:

WatiN, Internet Explorer and Thread.Apartmentstate

本文解釋爲什麼以及如何將線程的ApartmentState設置爲單線程單元(STA)。在使用Internet Explorer運行測試時這是必需的。它還告訴你如何在NUnit,MBUnit,MSTest,TestDriven.Net,Fitnesse或SharpDevelop中使用WatiN時執行此操作。

+0

我不在這個項目中使用nunit。 –

+1

請參閱此文檔http://watin.org/documentation/和http://watin.org/documentation/sta-apartmentstate/ –

+0

此鏈接現在包含廣告軟件。請不要點擊它。 –