Хак для Selenium WebDriver
Собственно,очень удобно использовать аннотации в WD
@FindBy(id = "idOfYourElement") WebElement myLocator;Но иногда требуется достать локатор из используемого элемента.Никакого метода для этого нет,поэтому будем хакать.
Путь это немного костыльно,но иногда необходимо.
public static String getXPath(WebElement element) {
String jscript = "function getPathTo(node) {" +
" var stack = [];" +
" while(node.parentNode !== null) {" +
" stack.unshift(node.tagName);" +
" node = node.parentNode;" +
" }" +
" return stack.join('/');" +
"}" +
"return getPathTo(arguments[0]);";
return "//"+(((JavascriptExecutor)driver).executeScript(jscript, element));
}
Так можно получить локатор по xpath.Но на мой взгляд,к этому нужно прибегать в крайних случаях.
Всем спасибо.