Yesterday everything worked fine, but today I'm getting this error:
Traceback (most recent call last): File "bot.py", line 31, in ig_bot = InstagramBot('temp_username', 'temp_password') File "bot.py", line 13, in init self.login() File "bot.py", line 20, in login self.driver.find_element_name('username').send_keys(self.username) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".username"} (Session info: chrome=77.0.3865.90)
I've tried to find element by class name, xpath but none of these worked.
bot.py
from selenium import webdriver
import os
import time
class InstagramBot:
def __init__(self, username, password):
self.username = username
self.password = password
self.driver = webdriver.Chrome('chromedriver.exe')
self.base_url = 'https://www.instagram.com'
self.login()
def login(self):
self.driver.get('{}/accounts/login/?source=auth_switcher'.format(self.base_url))
time.sleep(2)
self.driver.find_element_by_name('username').send_keys(self.username)
self.driver.find_element_by_name('password').send_keys(self.password)
time.sleep(1)
self.driver.find_elements_by_xpath("//div[contains(text(), 'Log In')]")[0].click()
def nav_user(self, user):
self.driver.get('{}/{}/'.format(self.base_url, user))
if __name__ == '__main__':
ig_bot = InstagramBot('temp_username', 'temp_password')
ig_bot.nav_user('garyvee')
html
<input class="_2hvTZ pexuQ zyHYP" aria-label="Phone number, username, or email" aria-required="true" autocapitalize="off" autocorrect="off" maxlength="75" name="username" type="text" value="">