要提取文本测试用户,您必须为visibility_of_element_located()
引入WebDriverWait,并且可以使用以下任何一个Locator Strategies:
使用CSS_SELECTOR
和get_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
您可以使用xpath找到该元素:
driver.find_element_by_xpath("//span[@class='smb-DropdownItem-text']//span[contains(text(),'test user')]");
您可以在xpath下尝试使用。
//img[contains(@src, '/profile/image/')]]/following-sibling::span
您可以使用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 . '")]')