Как стирать символы в поле ввода при использовании Selenium

Рейтинг: 2Ответов: 3Опубликовано: 16.02.2023

Как удалить символы в поле, куда мне нужно запихнуть свою информацию. К примеру. Открываем окно, с которого нужно отправить отчет на @mail, но при окрытии окна в поле mail уже прописан адрес другой почты например mail1@mail.ru, а роботу нужно стереть её и вписать туда mail2@mail.ru как это реализовать подскажите.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import StaleElementReferenceException
import time

driver = webdriver.Firefox()
driver.get("https://*********.ru")
driver.maximize_window()

mail = driver.find_element(By.XPATH, 'path')
mail.send_keys("mail2@mail")

Ответы

▲ 0Принят

Получилось вот таким образом:

for i in range(0, 19):
    driver.find_element(By.XPATH, 
    '/html/body/div[1]/div[3]/div[4]/div/div[2]/form/div[2]
    /div[2]/div[2]/input').send_keys(Keys.BACKSPACE)
▲ 1
driver.find_element_by_id('foo').clear()
▲ 0

У меня (Keys.BACKSPACE) не сработал когда в поле было больше 1 символа. Поэтому я применил такой вариант:

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By


driver.find_element(By.XPATH, "...").send_keys(Keys.CONTROL+"a", Keys.DELETE)

В данном примере CONTROL+"a" выделяет всё что в поле, ну а Keys.DELETE всё это удаляет.

Работает отлично, без нареканий.