el.text和el.get_attribute('textContent')或innerHtml之间的区别是什么?

时间:2017-01-25 17:42:00

标签: python selenium-webdriver

我想出了el.text的奇怪行为,它开始什么都没回来。 但在一切正常之前。我尝试el.get_attribute('innerHtml'),一切正常。 元素是可见的。为什么会这样?

course_starts_dates =driver.find_elements_by_xpath('//[@itemtype="http://schema.org/Event"]/td[2]/a')
for el in course_start_dates:
    course_start_date.append(el.get_attribute('textContent'))

1 个答案:

答案 0 :(得分:0)

这更像是一般的XML问题。因此,了解您的XML内容是否发生了变化非常重要。

在一个简短的xml样本中,

<xmlNode myAttr="value">
  <subElement1>Test </subElement1>
  <subElement1>123</subElement1>
</xmlNode>

innerText是xmlNode中所有文本的组合(因此在subElement1节点内)。所以它应该返回“测试123” innerHTML不应仅返回文本,还应返回结果中的XML / HTML标记,例如

&lt; subElement1&gt;测试&lt; / subElement1&gt; &LT; subElement1&GT; 123&LT; / subElement1&GT;

当xmlNode没有子节点时,“text”只是xmlNode本身的文本值:

<xmlNode>Test 345</xmlNode>