Селен, Java и Angular: элемент не взаимодействует - PullRequest
1 голос
/ 11 июня 2019

На сайте установлена ​​более старая версия Angular, 5.2.11.

У меня есть что-то, что выглядит как прямое поле ввода на странице, но, возможно, не так прямо в разметке:

<div felt fieldname="approxCostDevelop" class="felt" e2e-selector="approx-cost-develop">
   <est-currecy-felt ng-model="develop.price" input-id="approxCostDevelop">
      <translate>Approximate cost of development</translate>
   </est-currency-felt>
</div>

Когда я пытаюсь получить доступ к этому текстовому полю, селен дает мне и исключение Element Not Interactable.

Я попытался поместить атрибут e2e-selector как там, где он сейчас, так и после поля атрибута input-id. Я также попытался использовать атрибут input-id вместо e2e-селектора. Один и тот же результат каждый раз.

Способ создания и доступа к веб-элементу:

//@FindBy(css = "[e2e-selector=approx-cost-develop]")
@FindBy(css = "[input-id=approxCostDevelop]")
private WebElement approxCostDevelopTextField;

public void setApproxCostDevelop(String approxCost) {
    pproxCostDevelopTextField.sendKeys(approxCost);
}

Это не поле пароля или какое-либо специальное поле. И это видно все время, с загрузки страницы. Элементы, расположенные непосредственно перед ним, представляют собой список флажков, которые все являются взаимодействующими.

1 Ответ

2 голосов
/ 11 июня 2019

Похоже, что элемент встроен в тег.

Я не очень знаком с Angular, но: вместо использования @FindBy и создания именованного WebElement, попробуйте просто создать WebElement с тем жеимя в качестве входного идентификатора.Как это:

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