2013-10-16 64 views
1

幾行程序與F5(調試)運行時,完美地工作,如果用Ctrl + F5(不調試)運行,但會拋出異常:硒的webdriver與ChromeDriver - C#的Visual Studio 2012年調試不可能

private static void Main(string[] args) 
{ 
    IWebDriver driver = new ChromeDriver(@"C:\Program Files (x86)\ChromeDriver"); 

本聲明拋出「無法連接,因爲目標機器主動拒絕它」異常,沒有內部異常。

此外,它完美地用Ctrl-F5

  • Windows 7的64位
  • VS 2012
  • 使用硒的webdriver的NuGet Packcge 2.35(最新)
  • 使用ChromeDriver.exe(V2 .4.226107)(最新)
  • 所有防火牆和antivrus等被打死。
  • 運行VS爲admin和UAC關閉

爲什麼調試,調試沒有運行之間的差異? (我知道調試器有一個主機進程請不要說明)

如何在調試模式下運行這個簡單的程序?

任何想法? THX提前

+0

在另一臺機器上重現? – Arran

回答

2

感謝所有誰花時間閱讀和思考這個問題。 我解決了它。嗯,這是一個愚蠢的事情,但我敢肯定的是,這裏類似的問題抱怨硒的webdriver和

「無連接可以作出,因爲目標機器積極地拒絕它」異常

了這項決議,以及其他答案有錯過了已發佈的解決和採取行動之間的關聯。他們大多建議使用ChromeDriver.exe的其他版本和談論版本不兼容和ChromeDriver.exe錯誤。

我認爲(至少我的情況)這些決議都是假的。

的「錯誤」來自webdriver的組件,而不是關於ChromeDriver.exe。我已經研究webdriver的來源,那就是:

while (!processStarted && DateTime.Now < timeout) 
{ 
    try 
    { 
     request.GetResponse(); 
     processStarted = true; 
    } 
     catch (WebException) 
    { 
} 

當DriverService類開始ChromeDriver.exe立即開始與請求輪詢它。因爲啓動過程需要時間,所以端口不會打開,前幾個嘗試......(至少有一個睡眠(10)或睡眠(50)將在這裏很好,但無論如何)

現在點:如果你是如此不幸,你沒有檢查VS 2012選項/調試/常規'啓用僅我的代碼」 你檢查調試/例外/拋出,則調試器將通過這個異常突破,但當然你不會看到源代碼,異常線將是你的線

IWebDriver driver = new ChromeDriver(@"C:\Program Files (x86)\ChromeDriver"); 

取決於時機(進程啓動),你可以重複幾次,你會認爲你的端口,防火牆,ChromeDriver.exe版本等與異常有關。

0

我在一個點上也有這個錯誤,並且經過幾個小時的調試......終於得到真正的錯誤顯示......我對I.E的看法。瀏覽器被設置爲125%...當我將其改回100%時...它工作。 :)