Selenium Webdriver には、要素内の可視テキストのみを返す関数が含まれています。要素内の非表示のテキスト (つまり、Selenium Webdriver W3C spec の意味で表示されないすべてのテキスト) のみを取得する関数を作成したいと思います。この仕様によると、要素は次のすべての条件が満たされた場合にのみ表示されます。
- 要素の高さと幅は 0px より大きい必要があります。
- その要素またはその祖先のいずれかが非表示であるか、CSS 表示プロパティが none である場合、その要素を表示してはなりません。
- 要素をビューポートの外に移動し、スクロールできない CSS3 Transform プロパティがある場合、要素が表示されないようにする必要があります。OPTION 要素と OPTGROUP 要素は特殊なケースとして扱われ、囲んでいる select 要素が表示されている場合にのみ表示されると見なされます。
- MAP 要素は、使用する画像が表示されている場合にのみ表示されます。囲んでいる MAP が表示されている場合、マップ内のエリアが表示されます。
- 「type=hidden」の INPUT 要素は表示されません
- Javascript が有効になっている場合は、NOSCRIPT 要素が表示されないようにする必要があります。
- offsetParents の要素の推移閉包のいずれかの祖先が固定サイズであり、"overflow:hidden" の CSS スタイルを持ち、要素の位置が親の固定サイズ内にない場合、要素を表示してはなりません。
要素内に含まれる非表示のテキストのみを返す JS 関数を作成することは可能ですか? そのような機能を含むライブラリを知っていますか? そのような機能はどれくらい遅くなりますか?