У меня есть всплывающая страница, на которой мне нужно нажать кнопку.Всплывающая страница на английском языке.
Кнопка, которую мне нужно нажать:
<button _ngcontent-c8="" class="btn btn-primary" type="button">Apply</button>
Путь, по которому вызовы метода выбираются для нажатия кнопки, выглядит следующим образом:
TemplatePopupPage templatePopupPage = editTemplatePage.clickApplyToClientsButton();
pause(5000);
editTemplatePage = templatePopupPage.clickApplyButton(EditTemplatePage.class);
@SuppressWarnings("unchecked")
public <W> W clickClientSearchApplyButton(Class<W> expectedPage) throws Exception {
click(clientsApplyButton);
pause(2000);
return (W) expectedPage.getConstructors()[0].newInstance();
}
protected void click(WebElement element) {
String tagName = element.getTagName();
String attributeType = element.getAttribute("type");
if (tagName.equals("input")
&& (attributeType.equals("submit"))) {
element.submit();
return;
}
element.click();
}
public interface WebElement {
void click();
}
Я пробовал пару путей xpath, которые все успешно указывают на кнопку, например:
@FindBy(xpath = "//div[@class='modal-footer']/button[text()='Apply']")
protected WebElement clientsApplyButton;
В строке все время происходит сбой - String tagName = element.getTagName();
в методе click ().Сообщение об ошибке: java.lang.NullPointerException
Я не думаю, что это проблема с XPath, поскольку при проверке страницы XPath находит элемент на странице.И теперь с этим xpath существует другой элемент.
У меня такое ощущение, что это связано с атрибутом _ngcontent-c8 , потому что я могу нажимать кнопки на других страницах, используя тот же click()
метод