[廚餘回收] 用 Selenium.WebDriver 跑測試時出現找不到 'geckodriver.exe' 的訊息

看到這訊息我研究之後覺得興奮,在 Selenium.WebDriver 3.0.0 以前,Selenium.WebDriver 內建的 FirefoxWebDriver 是由 Selenium Projects 單獨開發跟維護,從 3.0.0 開始 Selenium Projects 跟 MDN 合作做了一個東西叫 geckodriver,它是下一代的 Selenium FirefoxDriver,歡呼!

在 MDN 這邊 geckodriver 由 Marionette 團隊支援,而 Marionette 是什麼東西?它是 Mozilla Gecko 引擎的 Automation Driver,可以用來遠端控制 Gecko 平台的 UI 或內部 JavaScript。

這聽起來在做跟 Selenium.WebDriver 一樣的事,沒錯,Marionette 的精神與 Selenium.WebDriver 差不多,它的目標是能做的跟 Selenium 一樣操作網頁內容,而且不只 Gecko Firefox 連 Gecko Chrome 也一起支援。

總之就是 Web Automation Driver 這件事被 MDN 重視了,並且成立 Marionette 團隊直接跟 Selenium 團隊合作。

解法一:從 NuGet 安裝 Selenium.Firefox.WebDriver

NuGet 上已經有準備好了 geckodriver.exe,就在 Selenium.Firefox.WebDriver 這個套件裡面,直接透過 NuGet 下載安裝就可以了。

解法二:直接下載 geckodriver.exe 並設定 PATH 環境變數

https://github.com/mozilla/geckodriver/releases 下載 geckodriver.exe,存放妥當後,設定 PATH 環境變數。

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學