我正在使用C#WebDriver自動化Web應用程序。一切都已經寫入Windows的目標。但現在有必要爲Mac準備好它。使用ChromeDriver.exe,Selenium webdriver啓動Chrome。這個exe可以使用C#Process類在Windows中啓動;但不是在Mac中使用Mono中的同一個類。解決方案似乎是在Mono中構建ChromeDriver。我從github獲得了ChromeDriver源代碼。但難以建造相同的。 問題說明是:如何用Mono構建ChromeDriver.exe。我正在使用Xamarin Studio(這是我在Mac上用C#開發的開發IDE)。所以我的目標是在Xamarin Studio中加載ChromeDriver源代碼並構建它。但是,當我拉動ChromeDriver的源代碼時,我看到幾個沒有任何項目文件的C文件,如* .vcxproj。搜索這個主題,我發現它可以使用忍者來構建。有一些命令「ninja -C out \ Release chromedriver」即將爲我做。所以我從github獲取了忍者資源。但是,當我嘗試運行build命令時,它會抱怨/釋放文件或目錄不存在。它確實不存在於我提取忍者的文件夾內。我唯一的信息是,一旦我生成忍者文件,out文件夾就會在那裏。但我完全不知道如何做到這一點,或者它的先決條件是什麼。 回到我需要它的原因:在selenium webdriver代碼中,ChromeDriver使用C#進程類啓動。需要ChromeDriver內置單聲道
Process p = new Process();
p.StartInfo.FileName = <Full Path of ChromeDriver.exe>;
p.UseShellExecute = false;
p.Start();
此C#代碼片段可在Windows中運行,但不能在Mac上運行。我使用Xamarin Studio進行調試。而我在p.start()行得到的錯誤是「沒有進程附加到對象p」。接下來,我使用Mac上的Xamarin Studio在C#中構建一個簡單的控制檯應用程序;即輸出exe是用Mono框架構建的。我在上面的代碼中使用這個exe的路徑而不是ChromeDriver。並且p.Start()成功執行,沒有錯誤。
因此,問題歸結爲ChromeDriver.exe的單聲道版本。在chromedriver的網站上,他們擁有適用於Windows的ChromeDriver.exe,適用於Mac的ChromeDriver.dmg,但不含Mono版本。我正在尋找以下3種解決方案中的任何一種: 1.如果使用Mono構建的ChromeDriver.exe已經在某處上傳了,那沒什麼更好的了。 2.我可以嘗試使用Mono構建ChromeDriver源 (https://github.com/scheib/chromium/tree/master/chrome/test/chromedriver) 。 3.跳過構建它,並找到其他方式在Mac中啓動ChromeDriver.exe。
我抓我的頭,所有這些在過去幾天:(的。任何幫助將大大讚賞!不要讓我知道是否需要任何更多的信息,請幫助..提前
謝謝, 德布
您收到的任何錯誤消息也會有所幫助。 –
你得到了什麼錯誤併發布完整的堆棧跟蹤。這些詞沒有任何錯誤和代碼來支持它。 – Arran
編輯該帖子的更多細節.. – Deb