지금 당장 기괴한 문제가 있습니다. 일부 승인 테스트를 시작하고 NUGet 최신 Selenium Webdriver에갔습니다. 잘 설치하고 그냥 모든 작업이었다 증명하기 위해 빠른 테스트를 썼습니다 : 모든 확인을 포함하고 내가 만든 및 Resharpers 테스트 러너를 통해 테스트를 실행,Selenium Webdriver 2.20 .net 클라이언트, 종속성 문제?
[Test]
public void should_navigate_to_google()
{
var driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.google.co.uk");
}
이 프로젝트는 .NET 4를 사용하여 단지 기본 클래스 라이브러리입니다.
OpenQA.Selenium.WebDriverException : 그럼 아래의 오류가있어 오류가 발생 ----> System.IO.FileNotFoundException 파이어 폭스에 연결 동안 : 파일 또는 어셈블리를로드 할 수 없습니다 'Ionic.Zip, 버전 = 1.9.1.8, 문화 = 중립, PublicKeyToken = edbe51ad942a3f5c '또는 종속성 중 하나입니다. 시스템이 지정된 파일을 찾을 수 없습니다. OpenQA에서 OpenQA.Selenium.Firefox.FirefoxExtension.Install에서 --FileNotFoundException에서 OpenQA.Selenium.Firefox.FirefoxDriver..ctor()에서 OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() (문자열 profileDir)에서. OpenQA.Selenium.Firefox.FirefoxDriver.StartClient에서 OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start()에서 OpenQA.Selenium.Firefox.FirefoxProfile.WriteToDisk()에서 Selenium.Firefox.FirefoxProfile.InstallExtensions()
저는 약간 당황했고 아마도 라이브러리의 .net 3.5 버전을 사용할 필요가 있다고 생각했습니다. 아무런 실수가 없었습니다. 그런 다음 .net 4로 돌아가서 속성에서 특정 버전을 사용하도록 어셈블리를 말했지만 여전히 운이 없다.
확답 나는 Firefox 용 기본 빌드에 설치되어있다. 파이어 폭스 프로파일에 파이어 폭스 프로파일에 대한 링크를 제공하고 파이어 폭스 바이너리를 만들었고 어디서 볼 수 있는지도 알려 주었다. 그런 다음 NUGet 버전을 해킹하고 웹 사이트에서 클라이언트 드라이버 바이너리를 얻었습니다. 동일한 문제입니다.
다른 CPU 유형에 맞게 버전을 변경하려고 시도한 후에 아이디어가 부족합니다. 이와 같은 문제는 거의 문서화되어 있지 않으므로 여기에 유용한 정보가 있습니다.
- 윈도우 7 프로페셔널 64 비트
- 비주얼 스튜디오 2010 프리미엄 (ReSharper에서 6)
- 파이어 폭스 (11)는
내가 확인하기 위해 인터넷 익스플로러의 드라이버를 사용하여 시도 (위치를 기본값으로 설치) 파이어 폭스와 관련된 특정 문제가 아니 었는지 확인하십시오. 다음과 같은 오류가 발생합니다.
System.IO.FileNotFoundException : Could not load file or assembly 'Newtonsoft.Json, Version=4.0.6.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
at OpenQA.Selenium.Remote.Command.get_ParametersAsJsonString()
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(DriverCommand driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.IE.InternetExplorerDriver..ctor()
그래서 지금은 아이디어에서 나는 지금까지 약 3 시간을 낭비 :(
내가 언급 한 것처럼 프로젝트와 패키지에서 NUGet 파일을 완전히 삭제했다. (잘 NUGet을 제거했지만 두 번 삭제되었다는 것을 확인했다.) 그런 다음 사이트에서 클라이언트 드라이버를 다운로드하여 패키지의 다른 폴더에 넣고 사용했다. 그들. 따라서 그들은 사이트에서 다운로드 한 2.20의 zip 버전으로 모두 컴파일됩니다. 또한 클라이언트 프로필이 아닌 전체 .net 대상을 대상으로합니다. – Grofit
그리고 WebDriver는 강력한 이름의 어셈블리를 제공합니다. 즉, WebDriver는 특정 버전의 종속성에 연결되어야하며 NuGet 종속성 **은 특정 버전이어야하며 일반적인> = 종속성이 아니어야 함을 의미합니다. NuGet이이 시나리오에 대해 더 나은 이야기를 제공하면 문제가 해결됩니다. – JimEvans