首页 > 解决方案 > 如何使用 Selenium 和 Python 定位元素并提取 innerText

问题描述

<span class="chr-UserDropdownItem-imageAndText">
    <img class="chr-UserDropdownItem-image" src="/slm/profile/image/264023573852/24.sp?version=1" alt="User Profile Avatar">
    <span class="smb-DropdownItem-text">
        <span>   test user   </span>
    </span>
</span>

通过查看上面的屏幕截图,请帮助我从span 标签中唯一地提取innerText 测试用户

标签: pythonseleniumxpathcss-selectorswebdriverwait

解决方案


要提取文本测试用户,您必须诱导WebDriverWait并且visibility_of_element_located()您可以使用以下任一 Locator Strategies

  • 使用CSS_SELECTORget_attribute()

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.smb-DropdownItem-text>span"))).get_attribute("innerHTML"))
    
  • 使用XPATH文本属性:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "span[@class='smb-DropdownItem-text']>span"))).text)
    
  • 注意:您必须添加以下导入:

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

推荐阅读