如题
写个 for 循环,然后返回第一个找到的元素,没找到就继续循环;然后根据找到的元素判断你要做什么
try:
# 设置等待时间
timeout = 10 # 等待10秒
# 等待元素A或B出现
element_a = WebDriverWait(driver, timeout).until(
lambda d: d.find_elements(By.ID, '元素A的ID') or d.find_elements(By.ID, '元素B的ID')
)
# 检查元素A是否先出现
if element_a[0].get_attribute('id') == '元素A的ID':
# 执行步骤A
print("元素A先出现,执行步骤A")
# 这里添加步骤A的代码
else:
# 执行步骤B
print("元素B先出现,执行步骤B")
# 这里添加步骤B的代码
except TimeoutException:
print("在指定的时间内没有找到元素A或B")
finally:
# 关闭浏览器
driver.quit()
from selenium import webdriver
driver = webdriver.Chrome()
try:
driver.get('your_url')
# 不断轮询检查元素 A 和元素 B 是否存在
while True:
try:
if driver.find_element_by_xpath('element_A_xpath'):
# 元素 A 先出现,执行步骤 A
print("元素 A 先出现,执行步骤 A")
break
elif driver.find_element_by_xpath('element_B_xpath'):
# 元素 B 先出现,执行步骤 B
print("元素 B 先出现,执行步骤 B")
break
except:
pass
finally:
driver.quit()
要喂到嘴边
element_a = WebDriverWait(driver, timeout).until(
lambda d: d.find_elements(By.XPATH, '元素A的XPATH') or d.find_elements(By.XPATH, '元素B的XPATH')
)
个人整理的元素定位,基本可以解决 90% 的元素定位,其中 # 是占位符
if element_a[0].get_attribute('id') == '元素 A 的 ID':
是这里没想好怎么改