Как выбрать элемента выпадающего списка при регистрации через Selenium

Проблема (Вопрос) заключается в том, что я не могу выбрать элемент из списка (дата рождения, месяц и год)

Я попытался сделать выбор при помощи библиотеки Select

У меня получилось только заполнить текстовые формы

У меня не получилось нажать на выпадаюший список и выбрать дату месяц и год рождения.

Код

from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time

link = “Регистрация
browser = webdriver.Chrome()
browser.get(link)

step1 = browser.find_element_by_css_selector(“#fname”)
step1.send_keys(“test”)
step2 = browser.find_element_by_css_selector(“#lname”)
step2.send_keys(“test”)

select = Select(browser.find_element_by_tag_name(“select”))
select.select_by_value(“1”)
time.sleep(1)
browser.quit()

Логи и ошибка вот такая:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“css selector”,“selector”:“select”}
(Session info: chrome=91.0.4472.114)

Не могу понять, почему не находит элемент. Подскажите как его найти?

потому что его там нет? вам же написано, что при попытке найти элемент по цсс селектору “select” ничего найдено не было

открывайте своё приложение, нажимайте ф12, ищите нужные вам элементы, пишите локаторы (либо css селекторы, либо xpath по моему гайду Xpath в web-тестировании, написание и отладка)

дальше пишите код типо

  1. нажать на дропдаун
  2. найти все элементы выпадающего списка
  3. выбрать оттуда нужный по тексту
  4. нажать на него

он там есть и я могу найти его через написание обычного css-селектора в консоли браузера, но стоит запустить скрипт на python - ничего не находится и не нажимается, хотя делаю все то же самое

скриншот в студию



в очередной раз мэйл ведёт себя как хз кто
если слева нет синего блока вконтакта, то есть локаторы //select


если чуть изменить разрешение, чтоб блок вконтакта появился, то //select пропадает

попробоавл сделать через css-selector на Python, но проблема осталась… Предлагаете изменить разрешение окна?


если вы нажмете ф12, то у вас появится блок vkonnect, из-за которого пропадают локаторы //select

ваши автотесты ходят без включенного ф12, потому либо пишите такие локаторы, которые сработают на любом разрешении экрана (что правильно), либо в опции запуска браузера вкрячьте такое разрешение, при котором vkonnect не появится, и ваши изначальные локаторы (и метод select селениума) будут работать

заработало в маленьком окне!!! Спасибо

1 лайк

блин, теперь могу все сделать с первым селектом, но из-за того, что остальные 2 блока тоже называются select, я не могу их выбрать (так как сначала выбирается дата), что можно сделать?


вот у вас на уровне выше есть test-id, завязываетесь на него и дальше уже селект