У меня есть свой сайт здесь: АУТ
с
<input type = "password" class = "gigya-input-password with-addon form-control" gigya-conditional:show-password-strength = "screenset.width < 900?up" name = "password" autocomplete = "off" gigya-expression:data-display-name = "screenset.translations['PASSWORD_73132891594356050_DISPLAY_NAME']" gigya-expression:data-gigya-placeholder = "screenset.translations['PASSWORD_73132891594356050_PLACEHOLDER']" data-screenset-element-id = "gigya-password-155327446633034050" data-screenset-element-id-publish = "true" data-screenset-roles = "instance" gigya-default-show-password-strength = "null" gigya-default-data-display-name = "null" gigya-default-data-gigya-placeholder = "null" data-gigya-name = "password" data-original-value = "" id = "gigya-password-155327446633034050" aria-required = "true" show-password-strength = "up" data-display-name = "Gib dein Passwort ein." data-gigya-placeholder = "Hier Passwort eingeben" placeholder = "Hier Passwort eingeben" maxlength = "100" data-attr-value = "Login - Password" data-attr-element = "formfield">
когда я делаю следующее:
WebElement password = driver.findElement(By.className("gigya-input-password"));
password.sendKeys(PASSWORD);
или
WebElement myElement = driver.findElement(By.className("gigya-input-password"));
String js = "arguments[0].setAttribute('value','"+PASSWORD+"')";
((JavascriptExecutor) driver).executeScript(js, myElement);
Я получаю следующую ошибку:
org.openqa.selenium.ElementNotInteractableException: элемент не взаимодействует
Как правильно ввести текст в поле с веб-драйвером selenium?
У меня уже есть Thread.sleep(2000);, чтобы сделать элемент видимым.
И
WebElement password = new WebDriverWait(driver, java.time.Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.className("gigya-input-password")));
ставит TimeoutException.
добавил HTML в вопрос
Существует несколько экземпляров полей с именем класса gigya-input-password, вы можете проверить это, проверив страницу и выполнив поиск gigya-input-password. У Selenium нет возможности узнать, какой из них вам нужен. Я предполагаю, что вам нужен тот, у которого есть заполнитель «Hier Passwort eingeben». Если вы выполните поиск по «Hier Passwort eingeben», вы увидите, что тот, который вам нужен, имеет идентификатор «gigya-password-155327446633034050». Это означает, что вы сможете найти его по идентификатору. Селектор CSS по умолчанию, предоставляемый Chrome: #gigya-password-155327446633034050.




By.className("gigya-input-password")
Вышеуказанная стратегия локатора неверна, она не находит целевой элемент. Он возвращает 16 элементов с этим именем класса, см. ниже.
Вместо этого используйте приведенную ниже стратегию локатора XPath:
By.xpath("//input[@placeholder='Hier Passwort eingeben']")
не совсем ясно, какое поле в данной ссылке является полем пароля. опубликуйте HTML-код формы. Вы также можете добавить скриншот формы для большей ясности.