问答 自动化测试 d.find_element.text 与 d.find_element.get_attribute('textContent') 有什么区别与联系?

hggh · 2023年08月14日 · 最后由 大海 回复于 2023年08月15日 · 5002 次阅读

如题,谢谢。

共收到 4 条回复 时间 点赞

你问的是啥……appium?webdriver?哪个版本的?

d.find_element.text 和 d.find_element.get_attribute('textContent') 都是在使用 Selenium 进行网页自动化时获取元素文本的方法,但是它们之间存在一些差异。

d.find_element.text: 这是 Selenium 提供的一个属性,它返回的是元素的可见文本,也就是说,如果文本是隐藏的(例如,通过 CSS 设置了 display: none; 或 visibility: hidden;),那么这个属性将不会返回这些隐藏的文本。

d.find_element.get_attribute('textContent'): 这是通过获取元素的 textContent 属性来得到元素的所有文本,包括隐藏的文本。textContent 是 DOM API 的一部分,它返回元素及其后代的文本内容。

简单来说,d.find_element.text 返回的是用户在页面上能看到的文本,而 d.find_element.get_attribute('textContent') 返回的是元素的全部文本,无论它是否可见。这两个方法根据你的需求都可能会用到,如果你只关心用户能看到的文本,使用 d.find_element.text,如果你需要获取元素的所有文本,包括隐藏的,那么使用 d.find_element.get_attribute('textContent')。

d.find_element.textd.find_element.get_attribute('textContent') 都是用于获取元素的文本内容。它们的区别和联系如下:

  1. 区别:

    • d.find_element.text:是 Selenium WebDriver 提供的一种简便方法,用于获取元素的可见文本内容。它会自动忽略元素内部的隐藏文本、注释等内容,只返回用户可见的文本。如果元素包含子元素,将返回所有子元素的文本内容,以及它们之间的空格和换行符。
    • d.find_element.get_attribute('textContent'):是 WebDriver 提供的一种更通用的方法,用于获取元素的文本内容。它可以获取包括隐藏文本在内的所有文本内容,并返回一个字符串。如果元素包含子元素,将返回所有子元素的文本内容,以及它们之间的空格和换行符。
  2. 联系:

    • 都可以用于获取元素的文本内容。
    • 都需要通过 d.find_element 或其他相应方法来定位元素。
    • 都可以通过 WebDriver 库来实现。

总的来说,d.find_element.text 更适用于获取用户可见的文本内容,而 d.find_element.get_attribute('textContent') 则更适用于获取所有文本内容,包括隐藏文本等。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册