- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
将 visual studio 中的 selenium 更新为 3.0,将 firefox 更新为 47.0,现在我在尝试使用本地 webdriver 模式时遇到此错误:geckodriver.exe 文件不存在于当前目录或 PATH 环境变量的目录中。
当我使用远程模式 (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 开始,您必须为 Firefox 浏览器使用 geckodriver
。
从这里下载最新的 geckodriver https://github.com/mozilla/geckodriver/releases
你有两个选择:
PATH
中输入 geckodriver 路径。System.Environment.SetEnvironmentVariable("webdriver.gecko.driver",@"/path/to/geckodriver.exe"
注意:如果您设置了 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# - 如何设置 selenium 3.0,在 C# 中出现错误 "The geckodriver.exe file does not exist...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40657443/
我是一名优秀的程序员,十分优秀!