HTML-элементы yandex qa tools Селеновая оболочка работает хорошо и инициализирует элементы, когда элементы находятся на объекте страницы, добавленном с помощью @FindBy
аннотации и HtmlElementLoader.populatePageObject(this, ((WebDriverBrowser)Browser.getDriver()).getWebDriver());
в конструкторе Page Object *
Но если содержимое страницы изменяется динамически, я хочу создать HtmlElement в пути без @FindBy lake, например:
public static void openNavigator(String navigatorName) {
String navigatorPath = String.format(MENU_OBJ_XPATH_PATTERN, navigatorItemMenuName);
Element navigatorMenu = new Element(By.xpath(navigatorXpath));
navigatorMenu.waitForVisible();
}
В этом случае конструктор элемента выглядит как
public Element(By locator) {
this.locator = locator;
}
Ошибка: no such element: Unable to locate element
И даже если я пытаюсь напрямую инициализировать элемент
HtmlElementLoader.createHtmlElement(Element.class, Browser.getBrowser().getWebDriver().findElement(By.xpath("//td[contains(text(),'Navigator')]")))
Ошибка
no such element: Unable to locate element: {"method":"xpath","selector":"//td[contains(@id,'cnt-start')]//*[contains(text(),'Navigator')]"}
(Session info: chrome=68.0.3440.106)
(Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Можно ли использовать обертку HTML-элементов следующим образом?