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

Selenium点击元素后页面自动返回,无法获取新页面元素求助

解决Selenium点击后页面自动返回的问题

以下是几种可行的解决思路,你可以逐一尝试:

1. 更换点击触发方式

原生click()方法可能未完全触发元素绑定的事件,试试直接点击内部的img元素,或用JavaScript模拟点击:

# 方法1:点击span内的img元素
edit_img = driver.find_element(By.CSS_SELECTOR, "#FXS_edit img")
edit_img.click()

# 方法2:用JavaScript执行点击
edit_element = driver.find_element(By.CSS_SELECTOR, "#FXS_edit")
driver.execute_script("arguments[0].click();", edit_element)

2. 模拟真实浏览器请求头

Selenium默认请求头可能被网站识别为自动化工具,添加真实的User-Agent:

from selenium.webdriver.chrome.options import Options
import os

chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# 添加符合真实浏览器的User-Agent
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
chrome_options.BinaryLocation = os.getcwd() + os.sep + "chrome.exe" + os.sep + "chrome.exe"

driver = webdriver.Chrome(options=chrome_options)

3. 处理新窗口/标签页切换

如果点击后是打开新标签页而非跳转当前页面,需要手动切换窗口句柄:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 记录原窗口句柄
original_window = driver.current_window_handle

# 执行点击操作
driver.find_element(By.CSS_SELECTOR, "#FXS_edit").click()

# 等待新窗口出现
WebDriverWait(driver, 10).until(lambda d: len(d.window_handles) > 1)

# 切换到新窗口
for handle in driver.window_handles:
    if handle != original_window:
        driver.switch_to.window(handle)
        break

# 显式等待目标表格加载完成
table_id = WebDriverWait(driver, 15).until(
    EC.presence_of_element_located((By.ID, "extensions_table"))
)

4. 禁用浏览器缓存

缓存异常可能导致页面自动回退,禁用缓存试试:

chrome_options.add_argument("--disable-cache")
chrome_options.add_argument("--disable-application-cache")
chrome_options.add_argument("--disable-offline-load-stale-cache")

5. 同步手动登录的会话状态

手动操作稳定可能因为会话包含特殊Cookie或参数,可手动登录后导出Cookie,在Selenium中导入:

# 替换为你手动登录后导出的实际Cookie
cookies = [
    {"name": "session_token", "value": "your_session_value", "domain": "target_domain"}
]

# 先访问网站首页,再导入Cookie
driver.get("http://IP Address")
for cookie in cookies:
    driver.add_cookie(cookie)

driver.refresh()  # 刷新后保持会话状态
driver.find_element(By.CSS_SELECTOR, "#FXS_edit").click()

内容的提问来源于stack exchange,提问作者José Souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:27:40