Почему python не понимает selenium?

Пишу вот такую функцию:
def main(link):
    browser = webdriver.Chrome()
    
    options = webdriver.ChromeOptions()
    options.add_argument(f"user-agent={user_agent()}") # подключение постоянной смены юзерагента

    try:
        browser.get("https://ru.savefrom.net/")
        video_input = browser.find_element(By.XPATH, '//*[@id="sf_url"]')
        video_input.send_keys(link)
        time.sleep(5)
    except Exception as es:
        print(es)
    finally: # обязаельное поле для чистки потоков
        browser.close()
        browser.quit


Почитал староверфлоу, доку веб-дравера, везде пишут By.XPATH, By.ID, я как только не пробовал, в том числе в кавычки брать первый аргумент и стирать "By."
Python выдает такие ошибки:
name 'By' is not defined # Если (By.XPATH, '//*[@id="sf_url"]')
name 'XPATH' is not defined # Если (XPATH, '//*[@id="sf_url"]')
Message: invalid argument: invalid locator # Если ('By.XPATH', '//*[@id="sf_url"]') и ('XPATH', '//*[@id="sf_url"]')
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
gedeys
@gedeys
А ты импортировал By?
from selenium.webdriver.common.by import By
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
попробуйте так:
by = 'XPATH'
value = '//*[@id="sf_url"]'
video_input = browser.find_element(by=by, value=value)

Для последней версии selenium оно вроде так работает.
Ответ написан
Ваш ответ на вопрос

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

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