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

如何用Selenium Python查找含特定文本兄弟元素的DIV并打印内容?

问题解决:通过兄弟元素筛选提取div文本

你的代码没响应的核心问题是XPATH表达式语法错误,同时节点关系判断有误。结合页面元素结构,修正方案如下:

错误分析

原XPATH //div[contains(@class,'ahoy-value')] and following-sibling::div[contains(text(),'Accountmanager')] 不符合XP语法规则,正确逻辑应该是先定位到包含"Accountmanager"的文本节点,再获取它对应的兄弟值节点。

修正后的代码

# 初始化变量为None更合理
accountmanager = None

def send_keys_in_loop_dropaccountmanager(locator):
    global accountmanager
    for i in range(5):
        try:
            # 等待元素可见并获取文本,用visibility_of_element_located比clickable更适合提取文本场景
            test = wait.until(EC.visibility_of_element_located(locator)).text
            print(test)
            accountmanager = test
            break
        except Exception as e:
            # 打印异常方便排查问题
            print(f"第{i+1}次尝试失败: {e}")
            continue

# 修正XPATH:先定位文本为Accountmanager的div,再取它的前一个兄弟节点(对应值的div)
send_keys_in_loop_dropaccountmanager((By.XPATH, "//div[contains(text(),'Accountmanager')]/preceding-sibling::div[contains(@class,'ahoy-value')]"))
print("accountmanager:", accountmanager)

关键说明

  • XPATH修正:根据页面元素结构,"Accountmanager"是标签文本,对应的值在它的前一个兄弟节点(preceding-sibling);如果实际结构是值在标签之后,替换为following-sibling即可
  • 等待条件优化:仅提取文本时,visibility_of_element_located比element_to_be_clickable更合适,避免不必要的可点击校验
  • 异常处理调整:捕获具体异常并打印,便于排查每次尝试失败的原因

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:41:57