问题标签 [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 回答
686 浏览

selenium-webdriver - 如何设置木偶驱动程序的详细程度?

无法管理木偶司机的冗长!

环境:

试过:

日志信息:

0 投票
2 回答
1327 浏览

selenium - Selenium - FireFox/Marionette 驱动程序太快而无法控制

将 Firefox 更新到 52 版后,我不得不将 gecko 驱动程序更新到 v17。但是我之前的所有脚本在 Firefox 中都失败了,因为它太快了,并且不想加载页面上的元素。

我现在被迫添加 Thread.sleep 等待每次点击。你们有什么解决方案可以帮助我吗?

在 Chrome 中工作得更好,但需要两者工作相同。

我运行 testNg,我得到的异常是:构建信息:版本:'3.4.0',修订:'未知',时间:'未知'

我通过插入不推荐的 Thread.sleep 来修复它,但这是唯一有效的方法。流利的等待不起作用或我

1505314327534 geckodriver INFO 监听 127.0.0.1:42753 1505314328131 mozprofile::profile INFO 使用配置文件路径 C:\User\AppData\Local\Temp\rust_mozprofile.NX5A3KOOQr 1505314328136 geckodriver::marionette INFO 启动浏览器 C:/Program Files/Mozilla Firefox firefox.exe with args [] 1505314328150 geckodriver::marionette INFO Connecting to Marionette on localhost:65331 1505314331570 Marionette INFO 监听端口 65331

0 投票
1 回答
1390 浏览

python - 硒 get_attribute("id")

我正在使用 Selenium 和 Firefox 在 python 中抓取。

我可以使用以下方法将我的 href 放入对象中:

它返回一堆<a>看起来像这样的标签:

返回了多个链接,但如果我只关注第一个链接:

输出这个:

请注意,最后一个属性 print 是空白的,什么时候应该返回ips_uid_1234_9。其他所有属性都返回正常,所以我不确定为什么“id”不能正确返回。

0 投票
1 回答
745 浏览

python-2.7 - Selenium + Geckodriver 故障排除

我在 Python 中使用带有 selenium 的 Firefox gecko 驱动程序来抓取论坛帖子标题,并且遇到了一个我似乎无法弄清楚的问题。

我正试图从论坛上刮掉几年前的帖子标题,我的代码可以正常工作一段时间。我坐下来看着它运行了大约 20-30 分钟,它完全按照它应该做的事情做。然而,随后我启动​​脚本,然后上床睡觉,当我第二天早上醒来时,我发现它已经处理了大约 22,000 个帖子。我目前正在抓取的网站每页有 25 个帖子,因此它在崩溃之前通过了大约 880 个单独的 URL。

当它崩溃时,它会引发以下错误:

最初我的代码如下所示:

我也试过:

我在所有 3 个场景中都遇到了相同的错误,但只有在它成功运行了一段时间之后,我不知道如何确定它失败的原因。

在成功处理数百个 url 后,如何确定为什么会出现此错误?还是有一些我没有遵循 Selenium/Firefox 来处理这么多页面的最佳实践?

0 投票
0 回答
1063 浏览

javascript - 网站可以检测到 Firefox 在 Marionette 上运行吗?

在 Selenium 上运行 Firefox 需要 Geckodriver,因为 Gecko 引擎与 JSON Wire 协议并不真正兼容。因此,Geckodriver 通过使用 Marionette 进行翻译,为 Selenium 和浏览器之间的所有命令提供服务,从而运行 HTTP 服务器。网站真的可以说当前的浏览器是由 Marionette 控制的吗?我已经看到,当 Firefox 自动运行时,您可以使用 localhost 和配置中的 Marionette Port 访问“Marionette Page”。Firefox 还显示机器人,它告诉用户当前浏览器是自动化的。所以内置了某种自动化检测,但是可以访问吗?

编辑:是的,确实,不同的浏览器暴露了不同的东西,但是 javascript 检测不再起作用。它能够检测到 Selenium RC,因为它必须在浏览器中注入一些 Javascript 代码才能工作。从 Selenium 2.0 开始,Webdriver 直接与浏览器通信,所以简单的 Javascript-Variable-Detection 将不起作用。我还发现并解释了其中一些暴露,但网站真的可以以某种方式访问​​它们吗?作为暴露的另一个区别:Chrome 将 navigator.webdriver 属性设置为 true,但 firefox 没有。

0 投票
1 回答
276 浏览

python - Python firefox木偶超时

我运行了以下内容:

Firefox 启动,命令行再次可供我使用。没有回应:

… 1491228343089 Marionette INFO 监听端口 2828

如此处所述

当我使用 python 运行木偶时,我执行以下命令:

回来:

有没有其他人经历过这个?我究竟做错了什么?

0 投票
1 回答
1239 浏览

python - 如何解决“ImportError:没有名为 marionette_test 的模块”

在我的 Python 脚本中,我试图通过 Marionette 驱动程序设置一些电话设置。我正在导入以下内容:

然后我试图打开与设备的客户端会话:

但是,我收到 UnknownCommandException:

仅供参考,我正在使用 marionette-driver 1.1.1

任何有关解决此问题的建议将不胜感激。


2018 年 10 月 26 日编辑

它现在返回一条不同的错误消息:

0 投票
0 回答
859 浏览

selenium - Firefox 没有从 selenium 网格节点配置中获取配置文件

我在我的 nodeconfig.json 中指定了 firefox 使用默认配置文件,而不是每次都创建一个新配置文件。

但是,它仍然每次都会创建一个新的配置文件,如第 3 行所示

下面是我的 nodeConfig.JSON

我在浏览器详细信息之后的第二行中放置了“webdriver.firefox.profile”:“default”。

这就是我创建驱动程序对象的方式,DriverConfig 是我创建的一个类,用于从应用程序设置中提取信息。

更新:

我也尝试按照功能示例https://github.com/mozilla/geckodriver#capabilities-example没有成功

更新了 nodeConfig.json

我尝试了以下使用配置设置网格的方法

所有连接和调用浏览器,但仍然在 temp 中创建配置文件

0 投票
1 回答
148 浏览

selenium - Firefox 52.9.0esr (Tor Browser 7.5.6) 哪个版本的 marionette_driver

Tor 浏览器更新到 7.5.6。以前的工作代码失败了

无效会话 ID 异常:

更新到 后marionette_driver 2.7,调用client.start_session()失败

marionette_driver.errors.UnknownCommandException: WebDriver:NewSession

marionette_driver这个 Firefox 版本应该使用哪个版本?(或者可能是像 Selenium 这样的另一个框架?)

0 投票
0 回答
440 浏览

selenium-webdriver - 如何更改临时文件系统路径 selenium 3

我正在尝试更改 Selenium 3.x 的临时文件系统路径。因为我想将临时 firefox 配置文件(moz_profile)放在 ram 磁盘上

在 Selenium 2.52 中,我可以使用以下代码更改目录:

之后,Selenium 为每个浏览器会话创建“匿名”目录。

Selenium 3.x 忽略配置的临时目录。

这也不起作用:

这里出了什么问题?谢谢你的帮助!