问题标签 [firefox-marionette]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1188 浏览

selenium - 通过 Marionette 驱动在 Firefox 浏览器中设置代理

Firefox 47 及更高版本不支持 Selenium Webdriver。我尝试使用 Marionette 驱动程序通过 Firefox 开始我的测试。

但是我在 firefox-profile 中的设置(代理必须设置为network.proxy.type = 4,自动检测)不再适用于 Firefox 配置(Firefox 打开,但所有设置默认设置),如果没有正确的代理配置,我的测试将无法工作。

如何通过 Marionette 驱动程序在 Firefox 浏览器中设置代理?

0 投票
1 回答
11074 浏览

c# - Selenium Firefox Marionette 驱动程序与 .NET C#

我最近一直在使用 Selenium ( http://www.seleniumhq.org/ ) 进行测试。它随机停止工作,我相信这是由于 Selenium WebDriver 2.53.0 不再与 Firefox 47 兼容(处理 Firefox 浏览器 (FirefoxDriver) 的 WebDriver 组件已停止使用)。

Marionette ([ https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver#.NET][2] ) 是下一代 FirefoxDriver,我一直在努力实现在我的机器上工作,但没有运气。

到目前为止,我已经下载了驱动程序,将文件重命名为 wires.exe 并保存在我网站的根目录中。然后我添加了以下代码:

但是,我收到以下错误消息:

“WebDriver.dll 中发生了‘OpenQA.Selenium.DriverServiceNotFoundException’类型的异常,但未在用户代码中处理

附加信息:wires.exe 文件不存在于当前目录或 PATH 环境变量的目录中。驱动程序可以在 github.com/jgraham/wires/releases 下载。”

如果有人知道如何让 Marionette 驱动程序与 Selenium 一起工作(或者甚至可以指出我正确的方向)并且可以提供逐步说明,那将不胜感激?

谢谢,

丹尼尔

0 投票
4 回答
3379 浏览

java - 在 Marionette 驱动程序中禁用日志跟踪

启动时MarionetteDriver,它是每个操作的打印日志语句。像

我正在启动MarionetteDriverby

是否有任何功能可以禁用日志

0 投票
3 回答
16499 浏览

python - Selenium 安装木偶网络驱动程序

我对 Firefox 版本 47 有这个问题https://github.com/seleniumhq/selenium/issues/2110

所以,我尝试添加 Marionette 网络驱动程序来修复它:https ://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

但:

返回错误:

selenium.common.exceptions.WebDriverException:消息:“wires”可执行文件需要在 PATH 中。

异常 AttributeError:“'Service' 对象在 > 中没有属性 'process'”被忽略

硒==2.53.5

0 投票
1 回答
222 浏览

python - Python 可以使用特定配置文件启动 Firefox 吗?

我正在尝试使用 Marionette 及其 Python 客户端为 Firefox 编写一些自动化测试,但 Python 似乎无法使用指定的配置文件启动 Python。这是一个问题,因为我需要两个 Firefox 配置文件进行测试。我正在尝试使用subprocess.call(['C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', '-P Marionette']),但它使用默认的 Firefox 配置文件(不是那个)启动。Marionette 可以更改当前的 Firefox 配置文件,还是 Python 可以使用命令行参数来运行特定配置文件?

0 投票
1 回答
2296 浏览

python - Python 中带有 Marionette/Selenium 的多个 Firefox 实例

我想在 Python 中使用 Selenium 打开多个 Firefox 实例并并行运行它们。更新到 Firefox 47.0 后,我们现在似乎必须使用 Marionette WebDriver for Firefox+Selenium。webdriver.Firefox()在使用 Marionette 之前,我可以通过多次调用轻松地从 Python/Selenium 中创建新的 Firefox 实例。不过,在切换到 Marionette 后,只有第一个实例有效。如果打开第二个实例,我会收到以下错误:

WebDriverException:消息:无法解码来自木偶的响应

发出错误后,该实例死亡,而最近调用的实例继续存在。环顾四周,问题似乎出在 Marionette 使用的端口上,新实例不断尝试访问原始实例使用的相同端口。我看到有一种方法可以通过 prefs.js 并创建单独的配置文件来更改正在使用的端口。但是,我想知道是否有一种方法可以完全在 Python 中完成(类似于这个Java 示例)。

任何帮助,将不胜感激!

0 投票
1 回答
2829 浏览

java - 相当于 Selenium Webdriver 中 MarionetteDriver 的 FirefoxDriver(*profile*)?

我正在尝试将一些 Selenium 测试从 转换FirefoxDriverMarionetteDriver,但我遇到了有关 PKI 的问题。到目前为止,我的解决方案是使用各种 Firefox 配置文件,这些配置文件只有一个自定义 PKI,并自动选择用于登录目的。但是,MarionetteDriver构造函数似乎无法使用自定义配置文件启动 Firefox。我该如何解决?

我在 Python 中通过在使用 Marionette 连接到它之前启动 Firefox 来解决这个问题,但我不知道 Selenium WebDriver 是否具有此功能。

0 投票
0 回答
525 浏览

selenium - MarionetteDriver 打开浏览器并挂起但不出错

这是我运行测试时得到的唯一输出。我是否需要在构建路径或链接资源中的某处添加 geckodriver.exe?

控制台输出:

这是我设置驱动程序的代码。

0 投票
1 回答
2844 浏览

c# - 更新到 Marionette 驱动程序 C#

好的,因为你们中的许多 webdriver 测试人员都知道 Firefox 47 的发布破坏了 Webdriver.FirefoxDriver。我能找到的所有文档都告诉我新的 FirefoxDriver 是 Marionette。

所以我从https://github.com/mozilla/geckodriver/releases下载了最新的可执行文件, 重命名为 wires.exe 并移到我的测试目录中。

这是我的设置方法

当我尝试运行时,出现以下异常。当我开始测试时,我可以看到wire.exe 进程正在进程资源管理器中运行。

这是生成异常的堆栈跟踪

我看到的大多数建议都是关于确保您的系统路径已更新。我觉得这里不是这种情况,就好像我从我的 test/bin/debug 文件夹中删除了 wire.exe 一样,我得到了以下异常。

这告诉我我正在找到驱动程序,但由于某种原因无法创建FirefoxDriver().

不知道在这里做什么,任何帮助都会很好。

0 投票
2 回答
11732 浏览

python - 在 Python 中使用 Selenium Marionette 截取整页截图

在最近的 Firefox 升级到版本 47 之后,我们被迫安装 Marionette 扩展以继续使用 selenium webdriver,并且在我的情况下,还将 selenium 从 2.52 升级到 2.53。

我使用 python 版本的 selenium webdriver 来获取以 HTML 和 JavaScript 呈现的地图的高分辨率图像。以前这在 Firefox 中运行良好,并且可以截取整个页面的屏幕截图,远远超出我自己屏幕的尺寸。然而,随着最近的变化,屏幕截图仅拍摄屏幕上可见的区域。我使用以下代码:

我已经考虑过:降级、拼接几张截图或者切换到Qgis。但是,我更喜欢更优雅的解决方案,它可以让我继续使用最新版本的 firefox 和大致相同的方法。有谁知道解决这个问题?也许通过欺骗硒认为视口更大?或者通过使用另一个支持 linux 的浏览器,它允许整页截图?