Selenium Python自动化Google注册表单遇邮箱归属确认报错如何解决
报错原因
- 谷歌账号注册页面内置了严格的反自动化风控策略,可识别Selenium工具的特征及操作行为。你当前的代码操作节奏和真人操作差异过大,所有字段一次性瞬时输入、无停顿点击提交的操作会直接触发风控,因此抛出归属验证提示拦截注册请求。
- 密码输入顺序不符合正常用户操作逻辑:正常操作是先输入密码再输入确认密码,你的代码中先填写
ConfirmPasswd再填写Passwd,反常操作逻辑也会被风控标记。 - 即使绑定了本地调试端口,Selenium自带的
navigator.webdriver等特征标记没有被隐藏,依然可被谷歌前端检测脚本识别。
解决方法
- 调整字段填写顺序,按照真人操作逻辑依次填写:姓名→用户名→
Passwd密码字段→ConfirmPasswd确认密码字段。 - 给所有输入、点击操作添加随机间隔,模拟真人操作节奏:可使用
time.sleep(random.uniform(0.3, 2))在每步操作之间加入随机停顿,也可封装逐字输入的方法,不要一次性将完整字符串填入输入框。 - 补充Selenium防检测配置,隐藏自动化特征:
options = Options() # 原有调试端口配置保留 options.add_experimental_option("debuggerAddress","localhost:9222") # 新增防检测配置 options.add_argument("--disable-blink-features=AutomationControlled") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) driver = webdriver.Chrome(ChromeDriverManager().install(),chrome_options=options) # 启动后注入js隐藏webdriver特征 driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', { 'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})' })
- 点击提交按钮前增加随机停顿,提交后预留足够的页面验证时间,不要立刻执行后续操作。
内容的提问来源于stack exchange,提问作者oliver queen
相关产品推荐
相关产品推荐

