子のテキストも取得せずにノードのテキストを取得したいと思います。たとえば、次の HTML からテキスト "hello" を取得するにはどうすればよいですか?
<div id="myid">hello <b>world</b></div>
子のテキストも取得せずにノードのテキストを取得したいと思います。たとえば、次の HTML からテキスト "hello" を取得するにはどうすればよいですか?
<div id="myid">hello <b>world</b></div>
これを機能させることができた唯一の方法は、リフレクションを使用して WebElement の可視性保護をバイパスすることです。
WebElement webElement = driver.findElementById("myid");
Method getter = webElement.getClass().getDeclaredMethod("getElement");
getter.setAccessible(true);
HtmlElement htmlElement = (HtmlElement) getter.invoke(webElement);
String name = htmlElement.getFirstChild().getTextContent();
XPath式を試す
//div[@id='myid']/text()
その div の直下にあるすべてのテキスト ノードに対して、および
//div[@id='myid']/text()[k]
そのdivの下のk番目のテキストノード。
libxslt を使用して XSL でこの XPath をテストしましたが、Web ドライバーではテストしていません (ただし、Web ドライバーが XPath をサポートしていることはわかっています)。