1. Selenium 打开的浏览器通常会将 window.navigator.webdriver
设置为 true
。你可以通过 JavaScript 执行以下代码来检查:
if (window.navigator.webdriver) {
// 浏览器由 WebDriver 驱动打开
} else {
// 浏览器是正常手动打开的
}
解决方法:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(options=options)
driver.get("https://www.baidu.com/")
input("避免浏览器自动关闭.....")
效果如下:
2. 检查 user agent 字符串: Selenium WebDriver 通常会更改浏览器的用户代理字符串。你可以通过 JavaScript 来获取用户代理字符串并检查其中是否包含 "webdriver" 或 "selenium" 等字样
var userAgent = window.navigator.userAgent;
if (userAgent.includes("webdriver") || userAgent.includes("selenium")) {
// 浏览器由 WebDriver 驱动打开
} else {
// 浏览器是正常手动打开的
}
解决方法:在配置参数中手动修改USER_AGENT 的参数
3.检查浏览器行为: Selenium 控制浏览器时通常会有一些自动化操作,例如快速的鼠标移动、单击等。你可以通过检查这些行为来确定浏览器是否由 Selenium 驱动打开的。