如何使用Selenium和Python定位元素并提取innerText

问题描述 投票:1回答:4

Image of Source Code

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

python selenium xpath css-selectors webdriverwait
4个回答
1
投票

要提取文本测试用户,您必须为visibility_of_element_located()引入WebDriverWait,并且可以使用以下任何一个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)
    
  • Note:您必须添加以下导入:

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

0
投票

您可以使用xpath找到该元素:

driver.find_element_by_xpath("//span[@class='smb-DropdownItem-text']//span[contains(text(),'test user')]");

0
投票

您可以在xpath下尝试使用。

//img[contains(@src, '/profile/image/')]]/following-sibling::span

0
投票

您可以使用XPath这样删除空白:

driver.find_element_by_xpath('//span/text()[normalize-space()="test user"]')

如果span标记中没有空格,请以这种方式使用XPath:

driver.find_element_by_xpath('//span[contains(text(), "test user")]')

动态使用:

driver.find_element_by_xpath('//span[contains(text(), "' . $HereIsSetYourDynamicallyVaribleName . '")]')
© www.soinside.com 2019 - 2024. All rights reserved.