Instagram XPath в Selenium не работает? (Python) - PullRequest
2 голосов
/ 08 июля 2020

Я создаю бота Instagram в Selenium в основном для того, чтобы лайкать определенные комментарии с другими учетными записями Instagram, но я не могу .click () в xpath сердца Instagram в разделе комментариев определенного комментария. Мне действительно нужен правильный xpath of the heart в разделе комментариев Instagram, и с этим я закончу.

from webdriver_manager.chrome import ChromeDriverManager
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import urllib

Link = 'https://www.instagram.com/p/CCZDF7YH5Yb/c/17958711199328488/'
driver = webdriver.Chrome(ChromeDriverManager().install())


driver.get('https://www.instagram.com/')
driver.implicitly_wait(10)

driver.find_element_by_name('username').send_keys('username') #Changed for the purpose of making this thread
driver.find_element_by_name('password').send_keys('password')
Login = "//button[@type='submit']"
driver.find_element_by_xpath(Login).submit()
sleep(1)
#Logs into Instagram
print ('Logged In')

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

#ISSUE is Below

#CommentHeart = '//*[@id="react-root"]/section/main/div/div[1]/article/div[3]/section[1]/span[1]/button/svg' #THIS XPATH doesn't work?
driver.get(Link)
wait = WebDriverWait(driver, 20)
element = wait.until(EC.element_to_be_clickable((By.XPATH, '/main/div/div[1]/article/div[3]/div[1]/ul/div[2]/ul/div/li/div/span/div/button/svg'))) #THIS XPATH doesn't work
element.click()
#driver.find_element_by_xpath(CommentHeart).click()
print ('Likes Comment')```

This is the xpath I've been using, that doesn't work.
```//*[@id="react-root"]/section/main/div/div[1]/article/div[3]/div[1]/ul/div[2]/ul/div/li/div/span/div/button/svg```

1 Ответ

2 голосов
/ 08 июля 2020

Я использовал приведенный ниже xpath, чтобы найти кнопку Like, и у меня она работает

driver.find_element_by_xpath('//*[@id="react-root"]/section/main/div/div[1]/article/div[2]/section[1]/'
                                         'span[1]/button').click()

из того, что я вижу в вашем коде, у вас есть

/section[1]/span[1]/button/svg

, но это должно быть просто

/section[1]/span[1]/button

, так как вы хотите нажать на кнопку, а не на svg

...