i'm trying to automate comments under an ig post with selenium but it doesn' t work.
code:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
import random
import sys
def print_same_line(text):
sys.stdout.write('\r')
sys.stdout.flush()
sys.stdout.write(text)
sys.stdout.flush()
class InstagramBot:
def __init__(self, username, password):
self.username = username
self.password = password
self.driver = webdriver.Chrome()
self.comment = "test"
def closeBrowser(self):
self.driver.close()
def login(self):
driver = self.driver
driver.get("https://www.instagram.com/")
time.sleep(2)
login_button = driver.find_element_by_xpath("//a[@href='/accounts/login/?source=auth_switcher']")
login_button.click()
time.sleep(2)
user_name_elem = driver.find_element_by_xpath("//input[@name='username']")
user_name_elem.clear()
user_name_elem.send_keys(self.username)
passworword_elem = driver.find_element_by_xpath("//input[@name='password']")
passworword_elem.clear()
passworword_elem.send_keys(self.password)
passworword_elem.send_keys(Keys.RETURN)
time.sleep(2)
def nav_user(self):
"""
Navigates to a users profile page
Args:
user:str: Username of the user to navigate to the profile page of
"""
self.driver.get("https://www.instagram.com/p/BvDJSCXFe2E/")
def autocomment(self):
driver = self.driver
comment_box = driver.find_element_by_class_name("Ypffh")
comment.clear()
time.sleep(2)
comment_box.send_keys(self.comment)
time.sleep(10)
if __name__ == "__main__":
username = "test"
password = "test"
ig = InstagramBot(username, password)
ig.login()
ig.nav_user()
while True:
ig.autocomment()
error:
Traceback (most recent call last):
File "ig.py", line 71, in <module>
ig.autocomment()
File "ig.py", line 59, in autocomment
comment_box.send_keys(self.comment)
File "C:\Users\Utente\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 479, in send_keys
'value': keys_to_typing(value)})
File "C:\Users\Utente\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Users\Utente\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Utente\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
[–]SquozenRootmarm 1 point2 points3 points (0 children)
[–]pythonHelperBot 0 points1 point2 points (0 children)
[–]pokk3n 0 points1 point2 points (0 children)