登录时,系统为了防止机器自动化操作,可能会加入特定的反爬虫机制,例如在滑块验证中检测鼠标移动的模式、速度等,如果 Selenium 操作过于规律或者没有模拟真实用户的操作行为,会被识别为机器人而导致验证失败。
在获取driver的时候添加下面的代码(我的框架是在driver.py文件中添加),禁用了一些自动化检测功能,以减少被网站识别为自动化程序的风险
options = Options()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
- options = Options(): 这一行创建了一个Options对象,用于配置浏览器的选项。
- options.add_experimental_option("excludeSwitches", ["enable-automation"]): 这一行设置了一个实验性选项,将浏览器的"enable-automation"开关排除在外。这个开关通常用来检测浏览器是否由自动化工具控制。
- options.add_experimental_option('useAutomationExtension', False): 这一行禁用了自动化扩展,这是另一种防止浏览器被自动化工具检测到的方法。
- options.add_argument('--disable-blink-features=AutomationControlled'): 最后一行设置了一个参数,指示浏览器禁用特定的Blink功能,这些功能通常与自动化控制相关。
- 综合起来,这段代码的目的是通过设置这些选项和参数,尽可能地隐藏浏览器的自动化痕迹,以避免被网站识别出正在被自动化工具控制,从而提高自动化测试的稳定性和可靠性
注意,一定要在确定Webdriver实例的时候就要加入这段代码,如果在打开url地址后添加,一般会没有效果