В качестве упражнения по изучению Selenium WebDriver я пытаюсь зайти на страницу входа в Twitter и войти в систему. Наконец-то я могу перейти на страницу и получить нужный элемент * для поля имени пользователя:
<input class="text-input email-input js-signin-email" name="session[username_or_email]" type="text">
* Я пытался найти, с какими типами элементов sendKeys
работает, но не могу. Я думаю, что этот элемент мне нужен, так как тег имеет тип <input>
.
Когда я вызываю sendKeys
на элементе после назначения, я получаю ElementNotInteractableException
. Я пытался использовать явное ожидание с ExpectedConditions
из visibilityOf
и invisibilityOf
. Соответствующая интерпретация TimeoutException
и ElementNotInteractableException
говорит мне, что элемент, который я упомянул выше, загружается в дерево DOM, но никогда не становится видимым *. Как мне обойти это? Есть ли решение с использованием JavascriptExecutor
?
* Окружающий HTML может показать, почему элемент остается невидимым:
<form class="t1-form clearfix signin js-signin"
action="https://twitter.com/sessions" method="post">
::before
<fieldset>
<legend class="visuallyhidden">Log in</legend>
<div class="clearfix field">
::before
<input class="text-input email-input js-signin-email"
name="session[username_or_email]" type="text">
.
** Для тех, кто на охоте, этот вопрос будет полезен, особенно если проблема вызвана методом click
.