【问题标题】:What's the diference between el.text and el.get_attribute('textContent') or innerHtml?el.text 和 el.get_attribute('textContent') 或 innerHtml 有什么区别?
【发布时间】:2023-03-23 08:10:02
【问题描述】:

我想出了 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'))

【问题讨论】:

    标签: python selenium-webdriver


    【解决方案1】:

    这更像是一个普通的 XML 问题。因此,了解您的 XML 内容是否发生更改非常重要。

    在一个简短的 xml 示例中,

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

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

    测试123

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

    <xmlNode>Test 345</xmlNode>
    

    【讨论】:

    • 感谢您的回复!你能说我怎样才能知道网站的 XML 内容吗?以查看此更改为例。
    • XML 对于任何文本编辑器都是人类可读的。如果您可以通过 URL 访问 XML 内容,只需在 Web 浏览器中调用该 URL。然后,您将已经在浏览器中看到 XML 页面。在这里,单击浏览器上下文菜单中的“查看页面源代码”。您可以将 xml 内容保存为 .xml 文件。 (具体步骤取决于您使用的浏览器)。如果您有不同的 XML 文件,您可以将它们与 WinMerge 等文本比较实用程序进行比较。如果您没有 URL 来调用您的 XML 原始数据,则必须找到另一种访问 xml 数据的方法(例如,当它们存储在数据库中时)...
    • 查看this Question 中的答案,了解当您无法在本地访问的服务器端文件时如何在 PHP 中直接打印 XML 数据。
    猜你喜欢
    • 2019-08-24
    • 2012-02-21
    • 2021-12-07
    • 2018-12-15
    • 1970-01-01
    • 2020-06-04
    • 2016-01-28
    • 1970-01-01
    • 2018-04-19
    相关资源
    最近更新 更多