Selenium Webdriver 包含一个仅返回元素内可见文本的函数。我想编写一个函数,它只会获取元素内的隐藏文本(即所有在 Selenium Webdriver W3C 规范的含义中不可见的文本)。根据此规范,元素只有在满足以下所有条件时才可见:
- 元素的高度和宽度必须大于 0px。
- 如果该元素或其任何祖先被隐藏或具有为无的 CSS 显示属性,则该元素不得可见。
- 如果存在将元素移出视口且无法滚动到的 CSS3 Transform 属性,则该元素必须不可见。OPTION 和 OPTGROUP 元素被视为特殊情况,当且仅当封闭的 select 元素可见时,它们才被视为显示。
- 当且仅当它使用的图像可见时,才会显示 MAP 元素。如果封闭的 MAP 可见,则显示地图内的区域。
- “type=hidden”的任何 INPUT 元素都不可见
- 如果启用了 Javascript,则任何 NOSCRIPT 元素都不得可见。
- 如果元素的 offsetParents 的传递闭包中的任何祖先具有固定大小,并且具有“溢出:隐藏”的 CSS 样式,并且元素的位置不在父元素的固定大小范围内,则该元素必须不可见。
是否可以编写一个仅返回包含在元素内的隐藏文本的 JS 函数?您知道任何包含此类功能的库吗?这样的功能会有多慢?