如何使用Selenium和Python定位元素并提取innerText 测试用户
通过查看上面的屏幕截图,请帮助我从span标记中唯一地提取如何使用Selenium和Python定位元素并提取innerText 测试用户,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,通过查看上面的屏幕截图,请帮助我从span标记中唯一地提取内部文本测试用户您可以使用xpath找到元素: <span class="chr-UserDropdownItem-imageAndText"> <img class="chr-UserDropdownItem-image" src="/slm/profile/image/264023573852/24.sp?version=1" alt="User Profile Avatar"> <spa
内部文本测试用户您可以使用xpath找到元素:
<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>
要提取文本test user,您必须为位于()的元素的可见性诱导WebDriverWait,并且您可以使用以下任一项:
- 使用
CSS\u选择器
和get\u属性()
:
- 使用
XPATH
和文本属性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.smb-DropdownItem-text>span"))).get_attribute("innerHTML"))
- 注意:您必须添加以下导入:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "span[@class='smb-DropdownItem-text']>span"))).text)
您可以像这样使用XPath来删除空白:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
如果span标记中没有空格,请按以下方式使用XPath:
driver.find_element_by_xpath('//span/text()[normalize-space()="test user"]')
对于动态:
driver.find_element_by_xpath('//span[contains(text(), "test user")]')
您可以尝试使用下面的xpath
driver.find_element_by_xpath('//span[contains(text(), "' . $HereIsSetYourDynamicallyVaribleName . '")]')
请不要发布代码截图。你已经尝试过一些方法了吗?以什么方式不起作用?实际上是名称测试用户动态生成的,那么如何处理您能告诉我吗?实际上是名称测试用户动态生成的,那么如何处理您能告诉我吗?实际上是名称测试用户动态生成的,那么你能告诉我怎么处理吗?@DeepakBhavale这个答案基于其他元素属性,我已经演示了如何从给定的HTML中提取文本测试用户。非常感谢。我尝试过使用CSS_选择器和get_attribute()方法。您能告诉我如何为同一元素选择第二个值吗?因为有4的层次结构。@DeepakBhavale你能为你的新需求提出一个新问题吗?实际上是动态生成的测试用户的名字,那么你能告诉我如何处理吗?实际上是动态生成的测试用户的名字,那么你能告诉我如何处理吗?你应该提到这一点。全名将被更改或部分更改?现在可以使用更新的xpath进行尝试。它独立于文本
driver.find_element_by_xpath('//span[contains(text(), "' . $HereIsSetYourDynamicallyVaribleName . '")]')
//img[contains(@src, '/profile/image/')]]/following-sibling::span