【问题标题】:Not able to get text between :: before and :: after无法在 :: before 和 :: after 之间获取文本
【发布时间】:2021-06-30 03:57:52
【问题描述】:
在 chrome 的 XPATH finder 中试过这个,元素被突出显示.. 但是 selenium 脚本给出了
Caused by: org.openqa.selenium.NoSuchElementException: no such element:
Unable to locate element:
//span[@class='badge badge-pill message message-bot']//p[@class='card-text']
【问题讨论】:
标签:
javascript
selenium
selenium-webdriver
css-selectors
【解决方案1】:
类message-bot 后面有个空格。
所以也许这会起作用:
//span[@class='badge badge-pill message message-bot ']//p[@class='card-text']
【解决方案2】:
要获取文本,请在选择器后添加 .text
另外,尝试使用 css 选择器:
.badge.badge-pill.message-bot>card-text
所以,你的文字是这样的:
result = driver.find_element_by_css_selector(".badge.badge-pill.message-bot>card-text").text
或者,
result = driver.find_element_by_xpath("//span[@class='badge badge-pill message message-bot ']/p[@class='card-text']")
很可能您只需要在p 之前添加一个 /。尝试这两个选项。