目前我有一个奇怪的问题,我刚刚开始进行一些验收测试,然后去 NUGet 最新的 Selenium Webdriver。安装得很好,只是写了一个快速测试来证明一切正常:
[Test]
public void should_navigate_to_google()
{
var driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.google.co.uk");
}
该项目只是一个使用 .net 4 的默认类库,一切正常,我通过 Resharpers 测试运行程序构建并运行了测试。然后我收到以下错误:
OpenQA.Selenium.WebDriverException:连接到 Firefox 时出错----> System.IO.FileNotFoundException:无法加载文件或程序集“Ionic.Zip,版本=1.9.1.8,文化=中性,PublicKeyToken=edbe51ad942a3f5c”或它的依赖项之一。该系统找不到指定的文件。在 OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() 在 OpenQA.Selenium.Firefox.FirefoxDriver..ctor() 在 --FileNotFoundException 在 OpenQA.Selenium.Firefox.FirefoxExtension.Install(String profileDir) 在 OpenQA.Selenium.Firefox。 FirefoxProfile.InstallExtensions() 在 OpenQA.Selenium.Firefox.FirefoxProfile.WriteToDisk() 在 OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() 在 OpenQA.Selenium.Firefox.FirefoxDriver.StartClient()
我有点困惑,想也许我需要使用 .net 3.5 版本的库,没有运气同样的错误。然后我尝试回到 .net 4 并告诉程序集在属性中使用 SpecificVersion,仍然没有运气。
确认我正在为 x86 构建并且 firefox 安装在默认位置,我什至为 firefox 配置文件提供了一个指向 exe 位置的链接,甚至制作了一个 firefox 二进制文件并告诉在哪里看,仍然没有运气。然后我解雇了 NUGet 版本并从网站上获取了客户端驱动程序二进制文件,同样的问题。
在尝试切换版本并为不同的 CPU 类型构建之后,我没有想法,关于此类问题的记录很少,所以这里有一些其他信息,以防它很有用。
- Windows 7 专业版 64 位
- Visual Studio 2010 高级版(带有 Resharper 6)
- Firefox 11(安装到默认位置)
我尝试使用 Internet Explorer 驱动程序以确保它不是特定于 firefox 的问题,但我得到另一个错误,如下所示:
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 个小时:(