问题:某些元素特定情况下出现,1s后又消失导致元素定位困难。如登录提示【登录成功】这种动态元素
原因 :前端通过setTimeout定时隐藏 / 销毁DOM元素,或动态渲染后快速移除,导致自动化脚本的定位操作滞后于元素的生命周期;此外,JS 修改元素样式(如透明、层级)也会让元素'视觉消失',看似无法定位。
解决方法:浏览器页面操作暂停JS代码的执行
F12-->sources---->当元素出现后第一时间暂停代码执行

定位后结果验证:
python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("你的登录页面")
# 1. 执行登录操作(输入账号密码、点击登录)
driver.find_element(By.ID, "username").send_keys("test")
driver.find_element(By.ID, "password").send_keys("123456")
driver.find_element(By.ID, "login-btn").click()
# 2. 显式等待:直到元素出现(最长等5秒),出现后立即获取文本
try:
tip_ele = WebDriverWait(driver, 5).until(
EC.presence_of_element_located((By.ID, "login-tip")) # 仅判断元素存在(不管可见性)
# 若要判断可见:EC.visibility_of_element_located((By.ID, "login-tip"))
)
print("提示文案:", tip_ele.text)
except:
print("未捕获到提示文案")