[英]How to set up selenium 3.0, getting error “The geckodriver.exe file does not exist…” in c#
Updated selenium in visual studio to 3.0 and firefox to 47.0 and now I'm getting this error when I try to use local webdriver mode: The geckodriver.exe file does not exist in the current directory or in a directory on the PATH environment variable. 在Visual Studio中将selenium更新为3.0,将Firefox更新为47.0,现在当我尝试使用本地webdriver模式时出现此错误:geckodriver.exe文件在当前目录中或PATH环境变量的目录中不存在。
When I'm using remote mode (seleniumhub), it works fine even if it uses firefox 45.0 version. 当我使用远程模式(seleniumhub)时,即使它使用的是firefox 45.0版本,也可以正常工作。
Tried to search for some examples, but did not found anything for c#, only for java and still could not make it work. 试图搜索一些示例,但没有为c#找到任何东西,仅为java找到了东西,但仍然无法使它工作。
my webdriver setup: 我的网络驱动程序设置:
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();
}
From selenium 3.0, you have to use the geckodriver
for Firefox browser. 从硒3.0开始,您必须使用Firefox浏览器的
geckodriver
。
download the latest geckodriver from here https://github.com/mozilla/geckodriver/releases 从这里https://github.com/mozilla/geckodriver/releases下载最新的geckodriver
You have two options: 您有两种选择:
PATH
. PATH
输入geckodriver路径。 System.Environment.SetEnvironmentVariable("webdriver.gecko.driver",@"/path/to/geckodriver.exe"
Note: System restart may be required if you set PATH environment variable. 注意:如果您设置PATH环境变量,则可能需要重新启动系统。
From Firefox 47 onwards (Excluding it), Selenium uses geckodriver capabilities by default. 从Firefox 47开始(不包括Firefox),Selenium默认使用geckodriver功能。 For 47 and previous versions onwards, you may need to turn off this capability so that Selenium can use Firefox built-in support like we used to work with these versions.
对于47及更早的版本,您可能需要关闭此功能,以便Selenium可以像以前使用这些版本一样使用Firefox内置支持。
JAVA version to achieve the same: JAVA版本实现相同:
DesiredCapabilities d = new DesiredCapabilities();
d.setCapability("marionette", false); // to disable marionette.
WebDriver driver = new FirefoxDriver(d);
References: 参考文献:
您可以从此处下载geckodriver: https : //github.com/mozilla/geckodriver/releases ,然后只需将文件目录添加到FirefoxDriver构造函数中,如下所示:
new FirefoxDriver("geckoDriverDirectory")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.