@validolll

Как выбрать элемент если он совпадает со списком?

for i in driver.find_elements(By.XPATH, '//*[@id="translators-list"]/li'):
    if i.text == 'TVShows' or 'Кубик в Кубе (Kubik³) (реж. версия)' or 'Дубляж':
        i.click()
        break


На сайте есть озвучки, мне нужно чтобы драйвер выбрал подходящую из 'TVShows' or 'Кубик в Кубе (Kubik³) (реж. версия)' or 'Дубляж', но печему-то не работает, не могу понять почему. + Если выбрал озвучку нужно закончить цикл и продолжить код дальше. По факту я думаю что проблема где-то в тегах or, мб не верно их использую. Помогити
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Чтобы выбрать элемент списка вы должны найти тег select и использовать у него метод select_by_visible_text или select_by_value, если знаете искомое значение, все методы можно посмотреть в документации.

Или же вы можете итерироваться по всем значениям списка, это ближе к вашей идее.
В вашем случае должен получиться примерно следующий код
correct_dubbing = ['TVShows', 'Кубик в Кубе (Kubik³) (реж. версия)', 'Дубляж']
select = driver.find_elements(By.XPATH, '//*[@id="translators-list"]')
for option in select.options:
    if option.text in correct_dubbing:
        option.click()
        break
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings
Python developer
Основы языка надо лучше учить
for i in driver.find_elements(By.XPATH, '//*[@id="translators-list"]/li'):
    if i.text in ('TVShows', 'Кубик в Кубе (Kubik³) (реж. версия)', 'Дубляж'):
        i.click()
        break
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы