-1

My code opens driver and opens website but gives error about:

AttributeError: 'WebDriver' object has no attribute 'find_element_by_name'

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver=webdriver.Firefox()
driver.get("https://www.python.org")
time.sleep(5)

search_bar = driver.find_element_by_name("q")
search_bar.clear()
search_bar.send_keys("getting started with python")
search_bar.send_keys(Keys.RETURN)

driver.close()
  • Please check your selenium version? it must be >=4.3.0, change the line of code to this `driver.find_element(By.NAME, "q")` instead of `driver.find_element_by_name("q")` – KunduK Jul 21 '22 at 11:56
  • I've tried using driver.find_element(By.NAME, "q") too but it said NameError: name 'by' is not defined – coderalpaca978 Jul 21 '22 at 12:22

1 Answers1

1

Use ID to find element

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

driver=webdriver.Firefox()
driver.get("https://www.python.org")
time.sleep(5)
search_bar = driver.find_element(By.ID, "id-search-field")
search_bar.clear()
search_bar.send_keys("getting started with python")
search_bar.send_keys(Keys.RETURN)
driver.close()
Sergey K
  • 1,329
  • 1
  • 7
  • 15