Я хочу ввести пароль в ящик с Selenium, но он возвращает selenium.common.exceptions.WebDriverException: Message: element not interactable

Мой скрипт на python:

from selenium import webdriver
browser = webdriver.Chrome(r'c:\chromedriver.exe')
url = 'https://creis.fang.com/'
browser.get(url)
browser.find_element_by_id('cnotp').send_keys('123456')

Если я запускаю скрипт, появляется ошибка выше. Однако, если я набираю построчно в консоли. Тогда нет ошибки.

Что мне делать?

Спасибо.

1
Chan 5 Июл 2019 в 15:28

2 ответа

Может быть, вы должны попытаться сделать это «шаг за шагом». Сначала выберите элемент, очистите его значение, затем выполните команду send_key ...

element = browser.find_element_by_id('cnotp')
element.clear()
element.send_keys('123456')

Надеюсь, это поможет !

0
Flo 5 Июл 2019 в 12:35

Всегда плачьте, когда есть изменение URL.

from selenium import webdriver

driver = webdriver.Chrome()  # Change
driver.get('https://creis.fang.com/')

element = WebDriverWait(driver, 60).until(
    EC.presence_of_element_located((By.ID, "cnotp"))
)

element.clear()
element.send_keys("123456")

Если это не работает, используйте js_executor

element = WebDriverWait(driver, 60).until(
    EC.presence_of_element_located((By.ID, "cnotp"))
)

driver.execute_script("document.getElementById('cnotp').click()")
driver.execute_script("arguments[0].setAttribute('value', '123456')", element);
0
mahan 5 Июл 2019 в 12:51