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

使用Python Selenium获取Google翻译页面p、span标签文本问题求助

问题原因

你当前无法提取到文本主要有三个问题:

  1. 用jsaction属性定位元素稳定性极低,该属性属于Google前端的动态事件绑定属性,会随页面渲染随机变动
  2. 固定0.5秒等待时间不足,网络波动或页面渲染延迟时,翻译结果还没加载完成就执行了元素提取操作
  3. innerhtml拼写错误(正确为innerHTML),且普通.text方法会受元素可见性配置影响,经常拿不到异步渲染的内容

修正方案

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

path = "C:\Program Files (x86)\chromedriver.exe"
opt = Options()
# 注意这里把myport替换成你实际的调试端口
opt.add_experimental_option("debuggerAddress", "Localhost:myport")
driver = webdriver.Chrome(executable_path=path, options=opt)
driver.get("https://translate.google.com/?hl=pl&sl=en&tl=pl&op=translate")

# 输入原文
input_ele = driver.find_element(By.XPATH, "//textarea")
input_ele.click()
input_ele.send_keys("hey")

# 显式等待翻译结果加载完成,最多等待10秒
wait = WebDriverWait(driver, 10)
result_ele = wait.until(EC.presence_of_element_located(
    # 用稳定的jsname属性定位翻译结果元素
    (By.XPATH, "//span[@jsname='W297wb']")
))

# 提取文本,textContent兼容性最高,不受元素可见性影响
translate_result = result_ele.get_attribute("textContent")
print(translate_result)

补充说明

如果后续遇到定位失效的情况,可以打开浏览器调试工具,直接在翻译结果文本上右键检查,找到承载文本的最内层span标签,用它的稳定属性(jsname、aria-label等)替换上面的定位条件即可。

内容的提问来源于stack exchange,提问作者Michał Wisełka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:06:04