Ошибка при использовании find_element_by_name Python selenium
начал учить Selenium и решил написать простенькую прогу которая будет жать на чекбокс.
from selenium.webdriver.chrome.service import Service
import time
from fake_useragent import UserAgent
from selenium import webdriver
options = webdriver.ChromeOptions()
useragent = UserAgent()
options.add_argument(f"user-agent={useragent.random}")
service = Service("C:\\Users\\Anon\\PycharmProjects\\Selenium test\\chromedriver\\chromedriver.exe")
url = "https://mega.nz/register"
driver = webdriver.Chrome(service=service)
try:
driver.get(url=url)
time.sleep(1)
checkbox2 = driver.find_element_by_name("register-check2")
except Exception as ex:
print(ex)
finally:
driver.close()
driver.quit()
получаю следующую ошибку: 'WebDriver' object has no attribute 'find_element_by_name', а Pycharm выдает такую подсказку: Unresolved attribute reference 'find_element_by_name' for class 'WebDriver'
Как решить данную проблему не знаю, так что за любой ответ буду благодарен!
Ps версия Selenium - 4.4.0
Ответы (2 шт):
Судя по всему, функция find_element_by_name "was depricated" и на данный момент отсутствует в файле webdriver.py библиотеки selenium==4.4.0. Исходя из официальной документации(python-selenium документация) вам необходимо использовать:
from selenium.webdriver.common.by import By
checkbox2 = driver.find_element(By.NAME, "register-check2")
Понизь версию силениума, чтобы данный синтаксис работал (ты используешь синтаксис силениума версии 3):
pip3 install 'selenium<4.0.0'