Я в настоящее время использую селен с Python 2.7 и я пытаюсь вставить пароль в следующей форме:селена питон: как отправить ключи к скрытому паролю с Differnet идентификаторами
<tr id="mockpass">
<td>
<input type="text" value="something1" onfocus="document.getElementById('mockpass').style.display='none';
document.getElementById('realpass').style.display=''; document.getElementById('Irealpass').focus();">
</td>
</tr>
<tr id="realpass" style="display: none;">
<td>
<input type="password" name="Password" id="Irealpass" onblur="if(this.value=='') {document.getElementById('mockpass').style.display='';
document.getElementById('realpass').style.display='none';}">
</td>
</tr>
Я попытался используя следующий код, но я держать получаю сообщение об ошибке при попытке преобразования приложений четкой команды:
passBoxXpath='//*[@id="mockpass"]/td/input'
passBoxElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(passBoxXpath))
passBoxElement.click()
passElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath('//*[@name="Password"]'))
passElement = driver.execute_script("arguments[0].style.display = 'block'; return arguments[0];",
passElement)
passElement.clear()
passElement.send_keys("myPassword")
ошибка:
raise exception_class(message, screen, stacktrace)
InvalidElementStateException: Message: Element is not currently interactable and may not be manipulated
Я не уверен, что это связано с фокусом или размытием, которое меняет элемент, но я получаю элемент и не могу его использовать.
Заранее благодарен!
обновление: следующая строка решить мой случай (до сих пор не знаю, почему он не работает):
driver.execute_script('document.getElementById("Irealpass").setAttribute("value","myPassword");')
Таким образом, мне не нужно использовать passBoxElement на всех или изменение стиля отображения.
, на котором из предоставленных линий вы получите исключение? – Andersson
on passElement.clear() – mk010