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