Кнопка комментариев к постам в Instagram не работает? Селен In Python - PullRequest
0 голосов
/ 06 августа 2020
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver.common.keys import Keys

user = 'username'
passw = 'password'



driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.instagram.com/')
driver.implicitly_wait(10)

driver.find_element_by_name('username').send_keys(user)
driver.find_element_by_name('password').send_keys(passw)
Login = "//button[@type='submit']"
sleep(2)
driver.find_element_by_xpath(Login).submit()
sleep(1)
# Logs into Instagram
print ('Logged In')

#------------------------ATTENTION

NotNow = "//button[contains(text(),'Not Now')]"
driver.find_element_by_xpath(NotNow).click()
# Clicks Pop Up
print ('Close Pop Up')

# It's weird but the pop up opens once, only after this page.
# If ever a problem delete one, or have the first click be
# directed to your Instagram Profiles timeline

NotNow = "//button[contains(text(),'Not Now')]"
driver.find_element_by_xpath(NotNow).click()
#Clicks Pop Up
print ('Close Pop Up')

#-----------------------------------



driver.refresh()
print ('refreshing')
driver.implicitly_wait(10)


LeaveComment = driver.find_element_by_xpath("//div/form[*[local-name()='textarea']]")
LeaveComment.click()

LeaveComment2 = driver.find_element_by_tag_name('textarea')
LeaveComment2.send_keys("look at this @programmer.chad nice post!")

#Xpath of the Post button on Instagram
Post = "//div/form/[*[local-name()='button']/@type='submit']"

#Xpath of the Form where the Post button is located
Form = "//div[*[local-name()='form']]"

#LeaveComment2.send_keys(Keys.ENTER)

#ERROR IS BELOW
driver.find_element_by_xpath(Post).submit()

Этот код входит в учетную запись Instagram, оставляет комментарий под первым сообщением на вашей временной шкале и публикует его. но я не могу опубликовать комментарий, пометив другой свой аккаунт. Любой другой комментарий отлично работает с использованием .send_keys (Keys.Enter). Итак, я попытался использовать .click () и использовать .submit () на XPath кнопки, где находится «Опубликовать», но не отправляет. Иногда он даже не отправляет сообщение об ошибке.

1 Ответ

1 голос
/ 06 августа 2020

Вы должны изменить Xpath кнопки Post на:

Post = '//*[@id="react-root"]/section/main/section/div/div[2]/div/article[1]/div/div[3]/section[3]/div/form/button'

И изменить эту функцию driver.find_element_by_xpath(Post).submit() на эту driver.find_element_by_xpath(Post).click()

...