Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

294
Views
find_element_by_* commands are deprecated in selenium

When starting the function

def run(driver_path):    
    driver = webdriver.Chrome(executable_path=driver_path)    
    driver.get('https://tproger.ru/quiz/real-programmer/')    
    button = driver.find_element_by_class_name("quiz_button")
    button.click()
run(driver_path)

I'm getting errors like these:

<ipython-input-27-c5a7960e105f>:6: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(executable_path=driver_path)
<ipython-input-27-c5a7960e105f>:10: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
  button = driver.find_element_by_class_name("quiz_button")

... but I can't understand why.

I'm using webdriver at the latest version for my chrome's version. I don't why I get

`find_element_by_* commands are deprecated` 

... when it's in the documentation that the command exists.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

@DebanjanB mentioned and explained the new structure , also it's better use these lines:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service

s = Service('C:/Users/.../chromedriver.exe')
driver = webdriver.Chrome(service=s)
over 4 years ago · Santiago Trujillo Report

0

As others mentioned, you should use find_element() or find_elements() instead of find_element_by_*() or find_elements_by_*().

I wrote the regex pattern to replace the deprecated methods to new one, so try this if you need.

# from - e.g. find_element_by_id("test")

find_element(s?)_by_([a-z]+)\((.*)

# to - e.g. find_element(By.ID, "test")

find_element$1(By.\U$2\E, $3

Note: you need the import line to use the new methods

from selenium.webdriver.common.by import By
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!