You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Selenium中不使用driver.get点击元素,避免跳转回谷歌登录页

解决方案

谷歌身份验证页面存在会话上下文校验机制,直接调用driver.get会丢失前序登录流程生成的临时会话参数,所以会触发跳转回登录起点的问题。你提到的点击按钮、模拟Tab+回车操作完全不需要调用driver.get,直接在当前页面上下文执行即可,可行实现方案如下:

方案1:直接定位Continue按钮点击(优先使用)

  • 先等待元素加载完成,避免未渲染报错,通过Selenium元素选择器定位后直接调用点击方法即可:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 最长等待10秒直到Continue按钮可点击
continue_btn = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), 'Continue')]"))
)
continue_btn.click()
  • 若文本定位不准,可替换为按钮的id、class、aria-label等其他属性匹配目标元素。

方案2:模拟键盘操作(定位按钮失败时使用)

  • 你提到的Tab+回车操作可以直接通过Selenium的键盘事件实现,完全不需要调用driver.get:
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

# 发送Tab+回车指令,单次Tab没定位到按钮可多次发送Tab指令后再回车
actions = ActionChains(driver)
actions.send_keys(Keys.TAB).send_keys(Keys.ENTER).perform()

额外注意事项

  • 进入验证页后不要执行刷新、driver.get跳转、清除缓存类操作,会直接丢失当前登录上下文
  • 若原生点击被反爬拦截,可使用JS注入方式点击,同样不需要刷新页面:
driver.execute_script("arguments[0].click();", continue_btn)

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:09:02