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

Python Selenium提交表单后如何获取操作成功或失败的确认文本

问题原因

  1. 你之前直接调用find_element方法返回的是Selenium的WebElement对象本身,要获取元素内的文本,必须追加.text属性读取。
  2. 点击提交按钮后弹窗为动态渲染,你提交后立即查找元素,此时弹窗还未加载完成,会出现读取到空文本、甚至报元素不存在错误的问题。
  3. 两种场景的提示文本存放位置不同:
    • 输入无效时,提示文本存放在.serialModal__notes下的span标签内,下方的p标签.serialModal__message为空
    • 操作成功时,提示文本存放在p标签.serialModal__message内

解决代码

首先导入需要的依赖:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

将提交按钮点击后的代码替换为如下内容:

submit.click()
# 显式等待弹窗加载可见,最长等待10秒
wait = WebDriverWait(browser, 10)
modal = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "serialModal")))

# 优先读取p标签的成功提示,为空就读取上方的失败提示
success_msg = modal.find_element(By.CLASS_NAME, "serialModal__message").text.strip()
if success_msg:
    result_text = success_msg
else:
    result_text = modal.find_element(By.CSS_SELECTOR, ".serialModal__notes span").text.strip()

print(result_text)

补充说明

如果你使用的是Selenium 3.x旧版本,也可以把find_element(By.xxx, 定位符)的写法替换为你原代码里的find_element_by_xxx写法,逻辑保持一致即可。显式等待会自动判断元素加载状态,比固定time.sleep的执行效率更高,不会出现不必要的等待时间。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:12:00