@FoxJune

Почему send_keys не отправляет дефис?

Есть элемент:
<input _ngcontent-pmb-c23="" aria-multiline="false" autocapitalize="off" autocorrect="off" role="combobox" type="text" id="city" placeholder="Город/населенный пункт" required="" maxlength="60" autocomplete="off" aria-autocomplete="both" aria-expanded="false" class="ng-valid ng-dirty isInvalid ng-touched">

И есть код, который записывает данные в этот тег:
from selenium.webdriver.chrome.options import Options
from selenium import webdriver

main_link = 'ссылОЧКА'
driver_path = r'путь\до\драйвера'
data = {..., 'city': 'Санкт-Петербург', ...}
options = Options()
driver = webdriver.Chrome(options=options, executable_path=driver_path)
driver.implicitly_wait(10)
driver.get(main_link)
driver.find_element_by_id('city').send_keys(Keys.CONTROL + 'a', data['city'])

И почему-то код не может записать дефис в input. Почему?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
Метод driver.find_element_by_id() возвращает объект типа WebElement. В файле WebElement.py с описанием класса WebElement заголовок метода send_keys выглядит вот так
def send_keys(self, *value):
        """Simulates typing into the element.

Т.е. при вызове этого метода можно указать 1 параметр - строку. У вас в коде указаны 2 параметра, что вызывает недоумение, как это ваш Python такое пропускает.
Мой Spyder (с Python 3.7) на попытку указать 2 параметра матерится.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
это не маска, я всегда так выгляжу
впечатай руками и копипаст впечатанного в код
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы