同様の質問に対するこの回答に基づいて、私はあなたに解決策を作りました:
JavaScriptは要素を受け取り、そのすべての子ノードを反復処理し、それらがテキストノードの場合は、それらを読み取り、連結して返します。
var element = arguments[0];
var text = '';
for (var i = 0; i < element.childNodes.length; i++)
if (element.childNodes[i].nodeType === Node.TEXT_NODE) {
text += element.childNodes[i].textContent;
}
return text;
このスクリプトをファイルに保存し、を介しscript.js
て単一にロードしました。グアバも使えます。または、Javaコードに埋め込むだけです。String
FileUtils.readFileToString()
Files.toString()
final String script = FileUtils.readFileToString(new File("script.js"), "UTF-8");
JavascriptExecutor js = (JavascriptExecutor)driver;
...
WebElement element = driver.findElement(By.anything("myElement"));
String text = (String)js.executeScript(script, element);