Javascript 是否可以只获取元素的隐藏文本?

Javascript 是否可以只获取元素的隐藏文本?,javascript,css,html,selenium,webdriver,Javascript,Css,Html,Selenium,Webdriver,SeleniumWebDriver包含一个只返回元素内部可见文本的函数。我想写一个函数,只获取元素内部的隐藏文本(即所有不可见的文本)。根据本规范,仅当满足以下所有条件时,元素才可见: 元素的高度和宽度必须大于0px 如果该元素或其任何祖先元素处于隐藏状态或具有“无”CSS显示属性,则该元素必须不可见 如果存在将元素移出视口且无法滚动到的CSS3变换属性,则该元素必须不可见。 选项和OPTGROUP元素被视为特殊情况,当且仅当封闭的select元素可见时,才会将它们视为显示 当且仅当地图使用的

SeleniumWebDriver包含一个只返回元素内部可见文本的函数。我想写一个函数,只获取元素内部的隐藏文本(即所有不可见的文本)。根据本规范,仅当满足以下所有条件时,元素才可见:

  • 元素的高度和宽度必须大于0px
  • 如果该元素或其任何祖先元素处于隐藏状态或具有“无”CSS显示属性,则该元素必须不可见
  • 如果存在将元素移出视口且无法滚动到的CSS3变换属性,则该元素必须不可见。 选项和OPTGROUP元素被视为特殊情况,当且仅当封闭的select元素可见时,才会将它们视为显示
  • 当且仅当地图使用的图像可见时,才会显示地图元素。如果封闭地图可见,则显示地图内的区域
  • “type=hidden”的任何输入元素都不可见
  • 如果启用了Javascript,则任何NOSCRIPT元素都不能可见
  • 如果元素的offsetParents传递闭包中的任何祖先具有固定大小,并且具有CSS样式“overflow:hidden”,并且元素的位置不在父元素的固定大小内,则元素必须不可见

是否可以编写一个JS函数,只返回元素中包含的隐藏文本?你知道有哪个库包含这样的函数吗?该功能的速度有多慢?

是的,如果您只是监视
显示:无
可见性:隐藏
,并且没有大小,甚至没有屏幕外的绝对/相对位置,则可以编写该代码。您必须迭代页面中的每个元素,确定该元素是否可见,如果可见,则从该元素中的任何文本节点收集文本

它不会比迭代文档中每个节点的任何其他函数慢或快。总时间将取决于迭代代码的编写效率(例如,它可以跳过隐藏元素的所有子元素)以及文档的长度/复杂程度

如果您希望能够区分溢出元素边缘之外的文本:隐藏的或可能标记为可见的元素,但不在屏幕上或不在视图中或不在当前可查看滚动区域内的文本,或可能被其他元素遮挡的文本片段,这将是非常困难的,老实说,我不知道是否所有这些都可以从纯javascript中解决