- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试启动 Mozilla,但仍然收到此错误:
Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
我正在使用 Selenium 3.0.01
Beta 版和 Mozilla 45
。我也尝试过使用 Mozilla 47
。但还是一样。
最佳答案
Selenium
客户端绑定(bind)将尝试从系统 PATH
定位 geckodriver
可执行文件。您需要将包含可执行文件的目录添加到系统路径。
在 Unix 系统上,如果您使用 bash 兼容的 shell,您可以执行以下操作将其附加到系统的搜索路径:
export PATH=$PATH:/path/to/geckodriver
在 Windows 上,您需要更新 Path 系统变量以将完整目录路径添加到可执行文件。原理和Unix上的一样。
以下所有使用任何编程语言绑定(bind)启动最新版 firefox 的配置都适用于 Selenium2
以显式启用 Marionette。使用 Selenium 3.0 及更高版本,您无需执行任何操作即可使用 Marionette,因为它已默认启用。
要在测试中使用 Marionette,您需要更新所需的功能以使用它。
Java:
因为异常明确表示您需要从 here 下载最新的 geckodriver.exe
并将下载的 geckodriver.exe
路径设置为您计算机中存在的系统属性,并在启动 marionette 驱动程序和启动 firefox 之前使用变量 webdriver.gecko.driver
如下:-
//if you didn't update the Path system variable to add the full directory path to the executable as above mentioned then doing this directly through code
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
//Now you can Initialize marionette driver to launch firefox
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new MarionetteDriver(capabilities);
对于 Selenium3
使用:-
WebDriver driver = new FirefoxDriver();
If you're still in trouble follow this link as well which would help you to solving your problem
.NET:
var driver = new FirefoxDriver(new FirefoxOptions());
Python:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.FIREFOX
# Tell the Python bindings to use Marionette.
# This will not be necessary in the future,
# when Selenium will auto-detect what remote end
# it is talking to.
caps["marionette"] = True
# Path to Firefox DevEdition or Nightly.
# Firefox 47 (stable) is currently not supported,
# and may give you a suboptimal experience.
#
# On Mac OS you must point to the binary executable
# inside the application package, such as
# /Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin
caps["binary"] = "/usr/bin/firefox"
driver = webdriver.Firefox(capabilities=caps)
ruby :
# Selenium 3 uses Marionette by default when firefox is specified
# Set Marionette in Selenium 2 by directly passing marionette: true
# You might need to specify an alternate path for the desired version of Firefox
Selenium::WebDriver::Firefox::Binary.path = "/path/to/firefox"
driver = Selenium::WebDriver.for :firefox, marionette: true
JavaScript (Node.js):
const webdriver = require('selenium-webdriver');
const Capabilities = require('selenium-webdriver/lib/capabilities').Capabilities;
var capabilities = Capabilities.firefox();
// Tell the Node.js bindings to use Marionette.
// This will not be necessary in the future,
// when Selenium will auto-detect what remote end
// it is talking to.
capabilities.set('marionette', true);
var driver = new webdriver.Builder().withCapabilities(capabilities).build();
使用 RemoteWebDriver
如果您想在任何语言中使用 RemoteWebDriver
,这将允许您在 Selenium
Grid 中使用 Marionette
。
Python:
caps = DesiredCapabilities.FIREFOX
# Tell the Python bindings to use Marionette.
# This will not be necessary in the future,
# when Selenium will auto-detect what remote end
# it is talking to.
caps["marionette"] = True
driver = webdriver.Firefox(capabilities=caps)
ruby :
# Selenium 3 uses Marionette by default when firefox is specified
# Set Marionette in Selenium 2 by using the Capabilities class
# You might need to specify an alternate path for the desired version of Firefox
caps = Selenium::WebDriver::Remote::Capabilities.firefox marionette: true, firefox_binary: "/path/to/firefox"
driver = Selenium::WebDriver.for :remote, desired_capabilities: caps
Java:
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
// Tell the Java bindings to use Marionette.
// This will not be necessary in the future,
// when Selenium will auto-detect what remote end
// it is talking to.
capabilities.setCapability("marionette", true);
WebDriver driver = new RemoteWebDriver(capabilities);
.NET
DesiredCapabilities capabilities = DesiredCapabilities.Firefox();
// Tell the .NET bindings to use Marionette.
// This will not be necessary in the future,
// when Selenium will auto-detect what remote end
// it is talking to.
capabilities.SetCapability("marionette", true);
var driver = new RemoteWebDriver(capabilities);
注意:就像其他浏览器供应商提供给 Selenium 的其他驱动程序一样,Mozilla 现在发布了一个可以与浏览器一起运行的可执行文件。关注 this了解更多详情。
You can download latest geckodriver executable to support latest firefox from here
关于java - Selenium 使用 Java - 驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38676719/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
Gecko 是 Firefox 的渲染引擎。使用 gecko-sharp 可以将它嵌入到任何 Mono/GTK# 程序中。有一个名为 GladeSharpBrowser 的示例应用程序为此。我可以设法
我正在寻找关于 Gecko 浏览器/Firefox 中是否有等同于 -webkit-mask 的可靠答案? 如果不是,是否有任何方法可以将 CSS 中的 -webkit-mask 降级为直接的背景图像
我在selenium Grid的帮助下运行基本的selenium代码。 以下是步骤: 第 1 步:- 下载最新版本的selenium Standalone 服务器 (3.4.0); 第 2 步:- 使
我使用 gecko 浏览器,我需要选择一个特定的列表框或组合框,但同一页面有多个列表框和组合框。我尝试了以下方法,但它适用于所有人。而且没有 ID 标签,只有名称标签。 GeckoElemen
这似乎是渲染引擎的一个怪癖,因为它已经过测试但无法在 WebKit 驱动的浏览器(Windows 的 Chrome 和 Safari)上重现。 描述 当使用深层嵌套的 DOM 结构时,例如 GXT G
今天我正在尝试优化我的网站,以便在 Firefox 中呈现更好的效果!我的问题是 text-shadow 和 font-weight 属性...我只想为 firefox 设置自定义值(我的网站只兼容
阅读后: Do not confuse the Gecko/XULRunner SDK with XULRunner itself. The Gecko SDK is a collection of
我遇到了 Actions 的问题类司机。我有这段代码 Actions act= new Actions(d1); act.moveToElement(d1.findElement(By.xpath("
问题: 当我使用 testNG 运行时,geckodriver.exe 未加载。 Firefox 将启动,但 selenium 无法连接到浏览器,并且出现错误: Unable to connect t
我希望能够用 Java 来控制 webkit/gecko/konqueror 浏览器。 Java 应该能够执行诸如“转到此 url;给我 DOM 树;模拟鼠标单击/键盘输入等”之类的操作。 最简单的方
编写一些 css hack,为 :hover {} 设计样式很有趣,但浏览器会处理 a:hover完整链接 VS 哈希标签不同。 来自 http://inqdrops.com/welcom/ a, a
当我开始最小的 Selenium 测试时,我得到了奇怪的日志(不确定是否是 Gecko Driver 的日志)。如何禁用这些日志如何解决这些问题? import org.openqa.selenium
帮助!我使用 GeckoFx-Windows-10.0-0.6 浏览器和 xulrunner-10.0.en-US.win32。 ( Visual Studio 2010 c# ) 一切正常。但我需要
我正在尝试仅使用 css 来屏蔽其中包含一些图像的元素。我已经做到了这一点,它在使用 -webkit-mask-box-image 的 webkit 中运行良好,它做的正是我想要的,但我在使用其他浏览
我有一个字符串,例如 Hello World!我想在不自己解析 HTML 的情况下获取#message 元素的内容。 我想也许我可以从 Gecko 中的字符串创建文档对象(这是用于 Firefox 附
我想通过每次使用列表中的下一个代理加载 X 页面来测试代理列表。 我正在使用 Gecko 网页浏览器 (GeckoFX),如何在网页浏览器控件执行时更改代理 IP:端口以使用其他代理打开网页? 最佳答
引用 nsICacheService ( https://developer.mozilla.org/en/NsICacheService ) 和 nsICacheVisitor ( https://
我将通过 BitBucket 分享我在 Selenium/Cucumber 框架中编写的代码。我使用以下方法使代码在 Firefox 中可执行。 System.setProperty("webdriv
我安装了 Gecko 驱动程序,因为我收到此错误:“java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属
我是一名优秀的程序员,十分优秀!