Я пытаюсь создать сценарий python, который понравится 10 фотографиям каждого, кто комментирует мою фотографию, но мои селекторы работают не очень хорошо.
Это мой код:
## url of the insta photo
url = 'https://www.instagram.com/p/B_cyBxwBDyd/'
driver.get(url)
sleep(randint(15,20))
# start at the first comment and end at the 10th comment
n = 1
while n <= 10:
## get username and click on it
username_button = driver.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[2]/div[1]/ul/ul['
+ str(n) + ']/div/li/div/div[1]/div[1]/a')
username_button.click()
## click on the username's first photo and repeat the process for 10 phots
for x in range(0,10):
photo = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/div/div[3]/article/div[1]/div/div[1]/div[1]')
photo.click()
button_like = driver.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[2]/section[1]/span[1]/button')
button_like.click()
## comment on a few of the photos, set up a probability scheme so not all the photos get a comment
comm_prob = randint(1,10)
print('{}_{}: {}'.format(x, n,comm_prob))
if comm_prob > 3:
comments += 1
sleep(randint(15,28))
driver.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[2]/section[1]/span[2]/button').click()
comment_box = driver.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[2]/section[3]/div/form/textarea')
if (comm_prob == 4):
comment_box.send_keys('OMG amazing!')
sleep(1)
elif (comm_prob == 5):
comment_box.send_keys('absolutely flawless!!')
sleep(1)
elif (comm_prob == 6):
comment_box.send_keys('OMG obcessed')
elif (comm_prob == 7):
comment_box.send_keys('so pretty!!')
sleep(1)
elif comm_prob == 8:
comment_box.send_keys('I love this!!')
sleep(1)
elif comm_prob == 9:
comment_box.send_keys('I love this shot (:')
sleep(1)
elif comm_prob == 10:
comment_box.send_keys('perfect!')
sleep(1)
# Enter to post comment
comment_box.send_keys(Keys.ENTER)
sleep(randint(15,28))
driver.find_element_by_link_text('Next').click()
## back to the comments page
driver.get(url)
n += 1
Я получаю ошибку:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[4]/div[2]/div/article/div[2]/div[1]/ul/ul[1]/div/li/div/div[1]/div[1]/a"}
однако, когда я копирую xpath из первого комментария, это:
/html/body/div[4]/div[2]/div/article/div[2]/div[1]/ul/ul[1]/div/li/div/div[1]/div[1]/a
, поэтому я не уверен, почему он не может найти элемент?
Это скриншот из проверки страницы: скриншот
Спасибо всем заранее!