суббота, 25 мая 2013 г.

Hack Xpath

Хак для 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.
Но на мой взгляд,к этому нужно прибегать в крайних случаях.
Всем спасибо.