首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium与Firefox88对navigator.webdriver的更改

Selenium与Firefox88对navigator.webdriver的更改
EN

Stack Overflow用户
提问于 2021-04-30 02:54:38
回答 2查看 1.1K关注 0票数 4

Firefox88的最新版本包括一个bug fix,如果浏览器是通过marionette协议运行的,那么用户就不能将navigator.webdriver属性设置为false。不幸的是,如果站点使用像Cloudflare的DDOS保护这样的服务,检查远程浏览器上的属性,并陷入无限循环,而不是重定向到请求的页面,这将有效地使一些web抓取活动变得不可能。

现在有没有人知道另一种方法,比如

代码语言:javascript
复制
profile.set_preference("dom.webdriver.enabled", False)

代码语言:javascript
复制
profile.set_preference("useAutomationExtension", False)

现在没有效果了吗?

具体地说,我使用的是带有Python绑定的Selenium,但我想使用任何框架的变通方法都可以适用于我的情况。

EN

回答 2

Stack Overflow用户

发布于 2021-05-04 23:21:32

我尝试在加载任何其他脚本之前向火狐添加覆盖navigator.webdriver的扩展。它似乎不仅与navigator.webdriver有关,而且还与其他一些东西有关。

我在document_start上执行了以下代码

script = document.createElement("script"); script.type = 'text/javascript'; script.id = "scripttttttt"; script.innerHTML = "Object.defineProperty(navigator, 'webdriver', {get: () => undefined});document.getElementById('scripttttttt').remove();"; document.documentElement.prepend(script);

这足以打开https://ebay-kleinanzeigen.de/m-einloggen.html,但还不足以登录到谷歌帐户。

票数 0
EN

Stack Overflow用户

发布于 2021-05-26 13:36:37

您可以停止firefox更新到版本88。为此,请执行以下任务。

如果已经更新/安装了

  1. ,请删除Firefox88版。

sudo apt-get purge firefox

  1. 删除火狐配置文件(如果仍然存在)。

rm -rf ~/.mozilla/

  1. 从缓存中搜索firefox旧版本。

apt-cache show firefox | grep版本

  1. 安装所需的88以外的版本。

sudo apt-get install firefox=desiredversion

为例:

sudo apt-get install firefox=75.0+build3-0ubuntu1

  1. 使用以下策略在位置:/usr/lib/firefox/ policies.json创建一个文件分发。这将停止强制更新到版本88。

{ "policies":{ "AppUpdateURL":"http://127.0.0.1/","DisableAppUpdate":true,"DisableFirefoxStudies":true,"DisableSystemAddonUpdate":true,"DisableTelemetry":true,"ExtensionUpdate":false }

}

打开火狐浏览器,转到about:config,点击I accept risk!或其他显示的内容。

  1. 中搜索app.update.auto并将其切换到False.

  1. 最终检查版本以确认。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67323487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档