将 Visual Studio 中的 selenium 更新为 3.0,将 Firefox 更新为 47.0,现在当我尝试使用本地 Webdriver 模式时收到此错误:
当前目录或 PATH 环境变量上的目录中不存在 geckodriver.exe 文件。
当我使用远程模式(seleniumhub)时,即使使用 firefox 45.0 版本,它也可以正常工作。
尝试搜索一些示例,但没有找到任何适用于 c# 的内容,仅适用于 java,但仍然无法使其工作。
我的网络驱动程序设置:
switch (ConfigurationManager.AppSettings["WebDriverMode"].ToLower())
{
case "local":
switch (ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower())
{
case "firefox":
driver = new AdvancedFirefoxDriver();
break;
case "ie":
driver = new AdvancedInternetExplorerDriver();
break;
case "chrome":
driver = new AdvancedChromeDriver();
break;
default:
throw new NotImplementedException(string.Format("WebDriverBrowserCapabilities of \"{0}\" is not implemented for {1} mode", ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower(), ConfigurationManager.AppSettings["WebDriverMode"].ToLower()));
}
break;
case "remote":
var huburl = new Uri(ConfigurationManager.AppSettings["SeleniumHubAddress"]);
DesiredCapabilities capabilities;
switch (ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower())
{
case "firefox":
capabilities = DesiredCapabilities.Firefox();
break;
case "ie":
capabilities = DesiredCapabilities.InternetExplorer();
break;
case "chrome":
capabilities = DesiredCapabilities.Chrome();
break;
default:
throw new NotImplementedException(string.Format("WebDriverBrowserCapabilities of \"{0}\" is not implemented for {1} mode", ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower(), ConfigurationManager.AppSettings["WebDriverMode"].ToLower()));
}
capabilities.IsJavaScriptEnabled = true;
driver = new AdvancedRemoteWebDriver(huburl, capabilities);
break;
default:
throw new NotImplementedException();
}
从selenium 3.0开始,你必须使用geckodriver
适用于火狐浏览器。
从这里下载最新的 geckodriverhttps://github.com/mozilla/geckodriver/releases
您有两个选择:
- 在Windows系统环境变量中输入geckodriver路径
PATH
.
- 或者以编程方式指定 geckodriver.exe 的位置,如下所示。
System.Environment.SetEnvironmentVariable("webdriver.gecko.driver",@"/path/to/geckodriver.exe"
Note:如果设置 PATH 环境变量,可能需要重新启动系统。
从 Firefox 47 开始(不包括它),Selenium 默认使用 geckodriver 功能。对于 47 及之前的版本,您可能需要关闭此功能,以便 Selenium 可以像我们过去使用这些版本一样使用 Firefox 内置支持。
JAVA版本实现同样:
DesiredCapabilities d = new DesiredCapabilities();
d.setCapability("marionette", false); // to disable marionette.
WebDriver driver = new FirefoxDriver(d);
参考:
- 如何在C#中设置系统属性
- https://msdn.microsoft.com/en-us/library/z46c489x.aspx
- https://superuser.com/questions/317631/setting-path-in-windows-7-command-prompt
- https://stackoverflow.com/a/40466109/2575259
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)