I'm encountering Selenium errors

58 views Asked by At

When I run the code I wrote in CMD, I encounter a lot of errors. Code I wrote:

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

def instagram(username, email):
 driver = webdriver.Firefox()
driver.get('https://www.instagram.com/')
sleep(2)

username_input = driver.find_element_by_name('username')
username_input.send_keys(username)
username_input.send_keys(Keys.ENTER)
sleep(2)

email_input = driver.find_element_by_name('email')
email_input.send_keys(Keys.ENTER)
sleep(2)

driver.quit()
username = '...'
email = '...'
reset_instagram_password(username, email)


driver = webdriver.Firefox()
driver.get('https://www.instagram.com/')

instead,

browser = webdriver. Firefox()
browser.get('https://www.instagram.com/')

But again the same errors are coming. And only the web page opens. In other words, I fill in the username and email address in the code, but only the web page comes up, so it does not save the username and email address.

I am using selenium Version: 4.14.0 and Firefox 119.0.

driver.get('https://www.instagram.com/')
NameError: name 'driver' is not defined. Did you mean: 'webdriver'?

browser.get('https://www.instagram.com/')
NameError: name 'browser' is not defined
1

There are 1 answers

4
TristanMas On

Try this :

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

def reset_instagram_password(username, email):
    driver = webdriver.Firefox()
    driver.get('https://www.instagram.com/')
    sleep(2)

    try:
        username_input = driver.find_element(By.NAME, 'username')
        username_input.send_keys(username)
        username_input.send_keys(Keys.ENTER)
        sleep(2)

        email_input = driver.find_element(By.NAME, 'email')
        email_input.send_keys(email)
        email_input.send_keys(Keys.ENTER)
        sleep(2)
    except Exception as e:
        print(f"An error occurred: {e}")
    finally:
        driver.quit()

username = '...'
email = '...'
reset_instagram_password(username, email)

Also, using sleep to wait for elements to load is not the best practice. It’s better to use WebDriverWait to wait explicitly for an element to be present.

And if it is not resolved with this please add the errors to the main question because we can't help you if we don't know what's wrong.