Не удается получить имя тега WebElement с помощью Selenium - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть всплывающая страница, на которой мне нужно нажать кнопку.Всплывающая страница на английском языке.

Кнопка, которую мне нужно нажать:

<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() метод

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

У меня есть попытка в моей IDE, это может сработать. Это скриншот

код скриншота

0 голосов
/ 18 февраля 2019

возможно, вы можете попробовать: @FindBy(xpath = "//div[@class='modal-footer']/button[con]") protected WebElement clientsApplyButton;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...