DOMロケーターについての私の理解を共有したいと思います。いくつかのDOMの略語があります。
gEBI - getElementById
gEBTN - getElementsByTagName
XpathロケーターとcssセレクターはSeleniumWebドライバーのコンテキストで使用され、DOMロケーターはjavascriptのコンテキストで使用されます(つまり、DOMロケーターで要素を適切に検索するには、JavascriptExecutor
最初にDOMロケーターをラップする必要があります)
使用例:
Whole web page document.documentElement
Whole web page body document.body
Element <E> by absolute reference document.body.childNodes[i]...childNodes[j]
Element <E> by relative reference document.gEBTN('E')[0]
document.getElementById('TestTable')
First <E> child document.getEBTN('E')[0]
Last <E> child document.gEBTN(E)[document.gEBTN(E).length-1]
Second <E> child document.getEBTN('E')[1]
Second-to-last <E> child document.gEBTN(E)[document.gEBTN(E).length-2]
Parent of element <E> document.gEBTN('E')[0].parentNode
Descendant <E> of element with id I using specific path
document.gEBI('I')…gEBTN('E')[0]
Descendant <E> of element with id I using unspecified path
document.gEBI('I').gEBTN('E')[0]
したがって、この作業を取得したい場合は、jsExecutorを呼び出す必要があります。それは次のようなものです:
JavascriptExecutor js = (JavascriptExecutor) driver;
String script = "return document.getElementById('example');";
WebElement exampleDiv = (WebElement) js.executeScript(script);
exampleDiv.getText();
また、あなたの問題に関して、私はここで説明の一部を見つけました
もう少し明確になることを願っています)