Selenium WebDriver で JavaScript を使用して XPath で要素を取得する
Selenium WebDriver/Java 内で JavaScript を使用して要素の innerHTML を取得するには (WebDriver はそれらを見つけることができません)、複数あります
document.evaluate() を使用した XPath 評価
広く採用されている方法には、document.evaluate() 関数を使用します。これにより、XPath 式文字列の評価が可能になり、可能な場合は指定された型に基づいた結果が返されます。これを利用する方法の例を次に示します。
function getElementByXpath(path) { return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } console.log( getElementByXpath("//html[1]/body[1]/div[1]") );
この例では、XPath 式「//html[1]/body[1]/div[1]」は、その中の最初の div 要素を取得します。
DOM を使用したカスタム実装Traversal
もう 1 つのオプションは、XPath 式に基づいてドキュメント オブジェクト モデル (DOM) を走査するカスタム関数を作成することです。このアプローチにより、より複雑な XPath 式を処理する場合、または document.evaluate() が特定の要件を満たさない場合に、より高い柔軟性が得られます。基本的な実装は次のとおりです。
function getElementByXpathCustom(path) { // Implementation details for DOM traversal go here }
どちらの方法にも異なる利点があり、特定の使用例に応じて適切な場合があります。 document.evaluate() を使用した XPath 評価は簡単であり、多くの状況で十分です。カスタム実装では、より多くの制御およびカスタマイズのオプションが提供されます。
ID 属性の考慮事項
ID 属性の使用は一般的なアプローチですが、すべての要素に次の要素が含まれるわけではないことに注意することが重要です。 ID 属性。このような場合、XPath またはカスタム DOM トラバーサル関数を利用すると、他の属性や DOM 内の構造的関係に基づいて要素を取得できます。
以上がSelenium WebDriver で JavaScript と XPath を使用して要素 InnerHTML を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。