Как написать текст на selenium не в поле input
Есть программа на selenium. Я дошёл до момента где нужно написать заголовок и текст, но проблема в том что тип там не input, а h1 и p со span в них. Есть ли способ напечатать текст так?
развёртка:

P.S если что у меня останавливается на том что я нажимаю на этот элемент
Ответы (1 шт):
Работая с selenium'ом вы должны имитировать действия пользователя браузера.
Ваша задача на данном моменте усложняется тем, что вам нужно ввести символы не в текстовое поле, а в элемент с атрибутом contenteditable и в данный элемент не так просто ввести текст, его для начала, грубо говоря, нужно "активировать" - кликнув на него мышкой. Тогда фокус и курсор будет перемещен в выбраный элемент и мы можем осуществлять ввод.
В селениуме нам нужно сделать тоже самое
- Открываем страницу
- находим элемент
- кликаем по нему
- при необходимости стираем вложенные данные
- вводим текст
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
# не забудьте заменить url
driver.get("https://www.your.site/")
# находим элемент на странице
header = driver.find_element_by_css_selector("h1.wp-block-post-title")
# кликаем по нему
header.click()
# вот так можно стереть символ, отправив кнопку BACKSPACE
header.send_keys(Keys.BACKSPACE)
# повторив это столько раз, сколько символов в тексте
# мы сотрем все что было введено до нас
for i in range(0, len(header.text)):
header.send_keys(Keys.BACKSPACE)
# а вот так можно ввести что-то своё
header.send_keys("Hello from Selenium!")