我是靠谱客的博主 纯情翅膀,最近开发中收集的这篇文章主要介绍如何正确删除Selenium中的window.navigator.webdriver,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

学Python,用RPA

艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用

www.i-search.com.cn/index.html?from=line1

使用Google的Chrome Devtools-Protocol(Chrome开发工具协议)简称CPD。

我们打开CPD的官方文档,可以看到如下的命令:

如何正确删除Selenium中的window.navigator.webdriver
在每个Frame刚刚打开,还没有运行Frame的脚本前,运行给定的脚本。

通过这个命令,我们可以给定一段JavaScript代码,让Chrome浏览器打开每一个页面,还没有运行网站自带的JavaScript代码时,就先执行我们给定的这段代码。

那么非常简单,我们使用driver.execute_cdp_cmd。根据硒的官方文档,引发需要调用的CDP命令和参数即可:

如何正确删除Selenium中的window.navigator.webdriver
于是我们可以写出如下代码:

from selenium.webdriver import Chrome

driver = Chrome(’./chromedriver’)
driver.execute_cdp_cmd(“Page.addScriptToEvaluateOnNewDocument”, {
“source”: “”"
Object.defineProperty(navigator, ‘webdriver’, {
get: () => undefined
})
“”"
})
driver.get(‘http://exercise.kingname.info’)
运行效果如下图所示:

如何正确删除Selenium中的window.navigator.webdriver
完美隐藏window.navigator.webdriver。并且,关键语句:

driver.execute_cdp_cmd(“Page.addScriptToEvaluateOnNewDocument”, {
“source”: “”"
Object.defineProperty(navigator, ‘webdriver’, {
get: () => undefined
})
“”"
})
只需要执行一次,之后只要你不关闭该驱动程序打开的窗口,无论你打开多少个网址,他都会自动提前在网站自带的所有js之前执行此语句,隐藏window.navigator.webdriver。

如果有人运行上面的代码,出现如下报错:

如何正确删除Selenium中的window.navigator.webdriver
那么请升级你的ChromeDriver。老版本的Chrome + ChromeDriver只能用以前的方法,不能用今天的方法。新版本的Chrome + ChromeDriver可以使用今天的方法,但不能用老方法。

【转载】https://mp.weixin.qq.com/s/U2aAC6K6RuQDRqfb8m35_w

最后

以上就是纯情翅膀为你收集整理的如何正确删除Selenium中的window.navigator.webdriver的全部内容,希望文章能够帮你解决如何正确删除Selenium中的window.navigator.webdriver所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部