2014-03-12 3 views
1

웹 응용 프로그램을 자동화하기 위해 C# WebDriver를 사용하고 있습니다. 모든 것은 이미 Windows를 대상으로 작성되었습니다. 그러나 이제는 Mac 용으로 준비 할 필요가 있습니다. Selenium webdriver는 ChromeDriver.exe를 사용하여 Chrome을 실행합니다. 이 exe는 Windows에서 C# Process 클래스를 사용하여 시작할 수 있습니다. Mono에서 같은 클래스를 사용하는 Mac에서는 그렇지 않습니다. 이 솔루션은 Mono에서 ChromeDriver를 구축하는 것으로 보입니다. github에서 ChromeDriver 소스를 얻었습니다. 그러나 건물을 짓는데 어려움이 있습니다. 문제는 Mono로 ChromeDriver.exe를 빌드하는 방법입니다. Xamarin Studio (Mac에서 C#으로 개발할 때 사용하는 개발 IDE)를 사용하고 있습니다. 그래서 내 목표는 Xamarin Studio에서 ChromeDriver 소스를로드하고 빌드하는 것입니다. 그러나 ChromeDriver의 소스를 가져 왔을 때 * .vcxproj처럼 프로젝트 파일이없는 여러 개의 C 파일이 표시됩니다. 이 주제에 대해 알아 낸 것은 닌자를 사용하여 구축 할 수 있다는 것입니다. 저에게 해줄 명령 인 "ninja -Cout \ Release chromedriver"가 있습니다. 그래서 나는 github에서 Ninja 소스를 가져 왔습니다. 하지만 빌드 명령을 실행하려고하면 파일/디렉토리가 존재하지 않는다고 불평합니다. 그것은 실제로 Ninja를 가져온 폴더 안에 존재하지 않습니다. 내가 가지고있는 유일한 정보는 일단 닌자 파일을 생성하면 아웃 폴더가있을 것입니다. 그러나 나는 그것을하는 방법이나 그것에 대한 전제 조건은 무엇인지 완전히 모른다. 내가 필요한 이유 : 셀레늄 웹 드라이브 코드에서 ChromeDriver가 C# 프로세스 클래스를 사용하여 실행됩니다.ChromeDriver Mono가 필요함

Process p = new Process(); 
p.StartInfo.FileName = <Full Path of ChromeDriver.exe>; 
p.UseShellExecute = false; 
p.Start(); 

이 C# 코드 단편은 Mac에서는 작동하지 않지만 Windows에서는 작동합니다. 나는 그것을 디버깅하기 위해 Xamarin Studio를 사용한다. 그리고 내가 p.start() 라인에서 얻는 에러는 "객체 p에 연결된 프로세스 없음"입니다. 다음으로 저는 Mac에서 Xamarin Studio를 사용하여 C#으로 간단한 콘솔 응용 프로그램을 작성합니다. 즉, 출력 exe는 Mono 프레임 워크로 구축됩니다. 그리고 위의 코드에서 ChromeDriver 대신이 exe의 경로를 사용합니다. 그리고 p.Start()는 오류없이 성공적으로 실행됩니다.

따라서 ChromeDriver.exe의 모노 버전이 문제가됩니다. chromedriver의 사이트에는 Windows 용 ChromeDriver.exe, Mac 용 ChromeDriver.dmg는 있지만 Mono 버전은 없습니다. 다음의 3 가지 해결책 중 하나를 찾고 있습니다. 1. Mono로 제작 된 ChromeDriver.exe가 이미 업로드되어있는 경우 더 좋은 점은 없습니다. 2. ChromeDriver 소스를 빌드 할 수있는 단계는 (https://github.com/scheib/chromium/tree/master/chrome/test/chromedriver) Mono입니다. 3. 모두 빌드를 건너 뛰고 Mac에서 ChromeDriver.exe를 시작하는 다른 방법을 찾으십시오. 내가 일 :(지난 몇 모든이 내 머리를 긁적입니다

는. 어떤 도움을 크게 이해할 수있을 것이다! 나 더 이상 정보가 필요합니다. 도와주세요 알려주나요 .. 사전에

감사합니다 , 년 동안 결석에 대한 뎁

+0

오류 메시지가 표시되면 도움이됩니다. –

+0

전체 스택 추적을 가져오고 게시하는 중 오류가 발생했습니다. 이 단어는 오류가없고 백업을위한 코드를 의미합니다. – Arran

+0

자세한 내용이 포함 된 게시물을 편집했습니다 .. – Deb

답변

0

미안! 정말 당신의 concern.Yes을 주셔서 감사합니다, 마지막으로 내가 할 수 있었다. http://chromedriver.storage.googleapis.com/index.html에서 chromedriver의 Mac 버전을 다운로드. 그리고 단지 내 C# (모노) 코드에서 사용 일반적으로 "SeleniumDriver = new ChromeDriver (driverLibrary);"문을 사용하여 ChromeDriver를 호출 할 수있었습니다.하지만 좀 더 변경해야했습니다. 여러 곳에서 C# 코드를 사용하여 전체 자동화 프레임 워크가 Mac에서 작동하도록 할 수 있습니다. 나는 더 세밀한 세부 사항을 잊었다. 그러나 그것이 재미 있었다는 것을 기억한다! 사람들은 Mac에서 Webdriver + Mono를 사용하게되어 기쁩니다!

+0

오, 제발 이것에 대한 자세한 내용이 있다고 생각하지 않습니까? 매우 도움이 될 것입니다! –

관련 문제