xpath для стрелки вправо в просмотре сообщений профиля Instagram не работает для всех сообщений (python, селен, хромедрайвер) - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь нажать на стрелку вправо в профиле Instagram, чтобы go просмотреть все сообщения.

Это мой текущий код, который переходит к первому сообщению и нажимает на стрелку вправо для go, чтобы второй пост:

 driver.get("https://www.instagram.com/leomessi/")
time.sleep(2)
#click on first post
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//body//div[contains(@class,'_2z6nI')]//div//div//div[1]//div[1]//a[1]//div[1]//div[2]"))).click()
time.sleep(2)
#hit next
driver.find_element_by_xpath('/html/body/div[4]/div[1]/div/div/a').click()
time.sleep(2)

Когда я пытаюсь нажать на стрелку, используя тот же xpath к go для третьего поста, он не работает, потому что изменился xpath для стрелки. Буду признателен за любую помощь, как решить эту проблему. Я хотел бы продолжать нажимать на стрелку, пока сообщения существуют. Для справки: 1. Сначала я перехожу к https://www.instagram.com/leomessi/ 2. Поиск и нажатие на первое сообщение приводит к https://www.instagram.com/p/B-KvtQbil7m/ 3. Нажатие на стрелку один раз приводит к https://www.instagram.com/p/B9t8tu4KeYK/ Если я попробую то же самое

driver.find_element_by_xpath('/html/body/div[4]/div[1]/div/div/a').click()

снова, я не смогу go к третьему посту. Как выбрать общий c xpath, который будет работать для стрелки правой кнопки мыши после каждого сообщения? Спасибо.

1 Ответ

1 голос
/ 30 марта 2020

Использование .find_element_by_css_selector.

Кнопка Next в Instagram, которую вы имеете в виду, используя этот селектор на всех страницах:

driver.find_element_by_css_selector('a.coreSpriteRightPaginationArrow').click()
...