Python 从Xpath访问文本

Python 从Xpath访问文本,python,selenium,xpath,css-selectors,getattribute,Python,Selenium,Xpath,Css Selectors,Getattribute,返回通过xpath找到的文本时遇到问题。首先,我需要通过css选择器找到元素: ticker1 = browser.find_element_by_css_selector('[data-id="1"]') print(ticker1.get_attribute('innerHTML')) <div class="header_card"><div class="header_card_title">Day's

返回通过xpath找到的文本时遇到问题。首先,我需要通过css选择器找到元素:

ticker1 = browser.find_element_by_css_selector('[data-id="1"]')
print(ticker1.get_attribute('innerHTML'))

<div class="header_card"><div class="header_card_title">Day's Title<i class="fa fa-info-circle 
toolTrigger" data-title="Day's Title" data- 
id="DaysTitle-tooltip" data-model="what-is-this"></i></div><div 
class="header_card_trend_symbol headerTrend" data-title="" data-id="1" data-process="" 
data-categories="" data-datapoints=""><i class="fa fa-arrow-circle-o-down ph_trend_red"></i></div> 
<div class="header_card_metric_value" data-id="1"><span>$0</span></div></div><div 
class="header_bars_container"><a href="#" class="dropdown-toggle" data-toggle="dropdown" 
data-boundary="viewport" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa- 
bars optionsIconDropDown"></i></a><ul class="dropdown-menu drop-sm" style="position: relative; right: 
10px; top: -16px !important; "><li></li><li><a href="#" class="headerTrend" data-title="Prior Day's 
Production" data-id="1" data-open="" data-process="" data-categories="" data-datapoints="">Trend</a> 
</li></ul></div>
ticker1=browser.通过css选择器('[data id=“1”]”查找元素
打印(ticker1.get_属性('innerHTML'))
每日标题
$0
然后我通过xpath访问子元素

t1l = ticker1.find_element_by_xpath(".//div[@class='header_card_title']")
print(t1l.get_attribute('innerHTML'))

Day's Title<i class="fa fa-info-circle toolTrigger" data-title="Day's Title" 
data-id="PriorDaysProduction-tooltip" data-model="what-is-this"></i>
t1l=ticker1.通过xpath(“.//div[@class='header\u card\u title'])查找元素
打印(t1l.get_属性('innerHTML'))
每日标题
我已经尝试了
.text
获取属性('text')
获取属性('value')
全部返回
'

解决了这个问题


这是
get\u属性('innerText')
,但不知道为什么。

你离得太近了。您需要按如下方式提取文本属性,而不是
get_属性('innerHTML')

t1l = ticker1.find_element_by_xpath(".//div[@class='header_card_title']")
print(t1l.text)
理想情况下,要打印文本日标题,您必须为位于()的元素的
可见性进行归纳,并且您可以使用以下任一项:

您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
您可以在中找到相关的讨论


奥特罗 链接到有用的文档:

  • 方法
    获取元素的给定属性或属性。
  • 属性返回元素的文本。

  • 我尝试了
    .text
    ,但它不起作用,将返回空白“”。@DannyCabrera检查更新的答案并告诉我状态。
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC