0

I want to upload a photo to Instagram, but send_keys() does nothing.

username = driver.find_element_by_name('username')
username.send_keys(user[0])
password = driver.find_element_by_name('password')
password.send_keys(user[1])
submit = driver.find_element_by_tag_name('form')
submit.submit()
sleep(5)
driver.get('https://www.instagram.com/')
sleep(7)
elem = driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]').click()
elem = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav[2]/div/div/div[2]/div/div/div[3]')
elem.click()
elem.send_keys("C:\\Users\\chainsaw\\my-awesome-meme.jpeg")
sleep(5)

Window just pops up, but then nothing happens. Thank you.

1 Answer 1

1

Well, I just solved this yesterday in my own code. You have to import pyautogui because the opened window is not part of the browser.

    image_name = "full path"
    pyautogui.press('f4')
    sleep(4)
    for i in range(0, numberOfchrachtersOfYourUser, 1):
        pyautogui.press('backspace')
        sleep(0.1)
    sleep(7)
    folder_name_parts = image_name.split('/')
    folder_name = ""
    for i in range(0, len(folder_name_parts) - 1, 1):
        if i > 0:
            folder_name += "/"
        folder_name += folder_name_parts[i]
    pyautogui.write(folder_name)
    sleep(5)
    pyautogui.press('enter')
    sleep(0.2)
    pyautogui.press('enter')
    sleep(0.2)
    pyautogui.press('enter')
    sleep(5)
    sh_image_name = image_name.split('/')[len(image_name.split('/')) - 1]
    pyautogui.write(sh_image_name)
    pause(2)
    pyautogui.press('enter')

now you should be back on your browser with your image. 1 further tip: If you want to tag other profiles, you have to emulate a mobile divice. In Chrome you do that:

    pyautogui.keyDown('ctrl')
    pyautogui.keyDown('shift')
    pyautogui.press('i')
    pause(1)
    pyautogui.press('m')
    pyautogui.keyUp('ctrl')
    pyautogui.keyUp('shift')
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.