- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我了解,当使用来自 NuGet 的 Selenium.WebDriver
v3.7 时,我需要当前版本的 geckodriver 才能与 Firefox ESR v52.4.1 交互。但是,我已经设法让测试运行并成功通过 geckodriver 的参与。
我相信这是因为我在实例化 RemoteWebDriver
时启用了 legacy implementation 选项,如下所示。
FirefoxOptions options = new FirefoxOptions
{
UseLegacyImplementation = true, // means that geckodriver is not required
BrowserExecutableLocation = ..., // ensures authorised Firefox version used
Profile = ... // an instance of FirefoxProfile
};
RemoteWebDriver remoteWebDriver = new FirefoxDriver(options);
帮助我理解细节的一些问题:
Selenium.WebDriver
使用 Marionette 协议(protocol)直接与 Firefox 浏览器对话?谢谢!
最佳答案
Does this mean that Selenium.WebDriver is talking directly to the Firefox browser using the Marionette protocol?
据我了解,当您将 System.setProperty("webdriver.firefox.marionette", "false");
设置为 false 或执行 FirefoxOptions options = new FirefoxOptions()
这意味着它正在使用 firefox 属性中描述的旧扩展(不是 marionette 和 gecko)here
.setLegacy(true);
不使用 gecko 就不能使用 Marionette(或者更确切地说,如果你想与基于 gecko 的浏览器交互,你必须使用 marionette )。 Marionette 中有一个 gecko 组件,它是提到的 marionette 服务器 here
geckodriver因为它写在 github 上,提供了一个 API 来与 Gecko browsers 通信
This program provides the HTTP API described by the WebDriver protocol to communicate with Gecko browsers
对于 selenium 3.0 及更高版本,木偶默认启用,如前所述 here
更多信息请引用this还有问题
如果您有兴趣了解有关 marionette 客户端-服务器-壁虎交互的更多信息,请查看 here
编辑:
source code在 readme.md 的不同位置,geckodriver 声明了以下关于 geckodriver 的要点
geckodriver is a Proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers.
Selenium client bindings will pick up the geckodriver binary executable from your [system’s
PATH
environmental variable][PATH]3.Since geckodriver is a separate HTTP server that is a complete remote end implementation of [WebDriver], it is possible to avoid using the Selenium remote server
geckodriver translates WebDriver [commands], [responses], and [errors] to the [Marionette protocol], and acts as a proxy between [WebDriver] and [Marionette]
By default geckodriver tries to find and use the system installation of Firefox
所以,为了回答您的问题,这就是它的工作原理
Selenium language bindings reaches to
-->geckodriver.exe finds
-->系统 firefox 安装(虽然可以更改)reaches to inbuilt
code> --> marionette client reaches to
--> marionette server reaches to
--> 浏览器的gecko engine 反过来调用
- -> Gecko 引擎中的 element.js,interaction.js,action.js,evaluate.js
取决于绑定(bind)或客户端请求的内容。
关于c# - Selenium 3.7 和 Firefox ESR 52.4.1 是否需要 geckodriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185262/
我使用的是 Firefox ESR 10.0.10。当我在两个不同的选项卡中打开同一个小程序两次时,只会打开一个控制台。对我来说,两个实例似乎都在同一个虚拟机中。如果我现在打开带有相同小程序的第三个选
我正在使用 Selenium 从 Java 代码进行测试,它通过 maven 自动启动,当我运行 mvn verify 它使用 gecko-driver 启动新的 selenium 的 firefox
我今天遇到了一个奇怪的困境——我的网站菜单在 mozilla firefox ESR (17.03+) 上(根本)不显示。 下面是我的菜单如何设置为正常显示: 虽然当我在 MFESR 上加载它时:这是
我需要检测 Firefox 是否在 javascript 中进行了 ESR 更新。 下图是没有 ESR 的 Firefox: 此图像是支持 ESR 的 Firefox 没有明确的方法来找出两者之间的差
我尝试在我的系统上使用selenium,但总是出现兼容错误。我的 Firefox 版本是:Firefox ESR 45.2.0 IBMCCK - 2.2.4(CCK2)我正在尝试的 Selenium
哪个 Selenium 独立版本与 Firefox 版本 ESR 52.6.0 兼容,以及哪个 gecko 驱动程序将支持所需的 jar。 最佳答案 对于 Firefox 52 或更高版本,Selen
我一直在慢慢阅读关于测试驱动开发的优秀的“Obey the Testing Goat”一书,当我读到第 7 章的结尾时,我注意到作者已经发布了一个更新版本。在更新的版本中,笔者一开始就推荐使用virt
据我了解,当使用来自 NuGet 的 Selenium.WebDriver v3.7 时,我需要当前版本的 geckodriver 才能与 Firefox ESR v52.4.1 交互。但是,我已经设
我是一名优秀的程序员,十分优秀!