如何使用Expected Condition从网站获取文本?
解答
element_to_be_clickable 用法说明
这个Expected Condition用于等待元素处于可点击状态(元素存在于DOM中、可见且未被禁用),既可以避免因元素未加载完成导致的点击失败,也能在确认元素可交互后安全获取其文本。
示例代码
以下是结合该方法实现获取文本的完整示例:
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 初始化等待对象,设置最长等待时间10秒 wait = WebDriverWait(self.driver, 10) # 等待目标元素可点击 target_element = wait.until(EC.element_to_be_clickable( (By.XPATH, "/html/body/div/div[2]/div/div[2]/div/div[3]/div/div/div[1]/div/div/div/h6") )) # 获取元素文本并打印 element_text = target_element.text print(element_text)
补充提示
如果目标元素无需点击,仅需获取文本,可根据场景选择更贴合的Expected Condition:
visibility_of_element_located:等待元素可见(存在且显示在页面上),适合需要确保文本已渲染完成的场景presence_of_element_located:仅等待元素存在于DOM中,无需可见,适合元素加载后立即有文本的场景
visibility_of_element_located的示例代码:
target_element = wait.until(EC.visibility_of_element_located( (By.XPATH, "你的元素定位路径") )) print(target_element.text)
内容的提问来源于stack exchange,提问作者Hans Radam
相关产品推荐
相关产品推荐

