Я пытаюсь написать программу на селене, которая позволит мне войти в мою учетную запись Instagram и загрузить фотографию из папки в качестве изображения моего профиля.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.implicitly_wait(15)
def changePhoto():
driver.get("https://www.instagram.com/accounts/edit/")
driver.find_element_by_xpath("//button[@class=\'sqdOP yWX7d y3zKF \']")\
.send_keys("This is where I put the directory for the photo I want to upload")
def instaProfile(un, pw):
driver.get("https://instagram.com")
driver.find_element_by_xpath("//input[@name=\'username\']")\
.send_keys(un)
driver.find_element_by_xpath("//input[@name=\'password\']")\
.send_keys(pw)
driver.find_element_by_xpath("//button[@type='submit']")\
.click()
driver.find_element_by_xpath("//img[@class=\'_6q-tv\']")\
.click()
driver.get("https://instagram.com/" + un.lower() + "/")
username = "DummyUsername"
password = "DummyPassword"
instaProfile(username, password)
changePhoto()
Итак, хотя я считаю, что это обычно работает, проблема здесь в том, что кнопка, которую должен сделать Instagram, не указана как загрузка файла, поэтому send_keys не может передать каталог.
Я пробовал использовать .click (), чтобы открыть затем используйте driver.window_handles [], но он, похоже, не распознает окно выбора файла как фактическое окно и говорит, что driver.window_handles [1] не настоящий