Selenium find_element_by_xpath не работает для Instagram - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь отсканировать Instagram, используя Python и Selenium. У меня было много проблем, связанных с поиском элементов, но каким-то образом мне удалось их преодолеть, когда я попробовал достаточно xpaths. Но когда я пытаюсь просмотреть в Интернете следующий список Дональда Трампа (я хочу, чтобы это работало для following списка / страницы ЛЮБОГО ПОЛЬЗОВАТЕЛЯ), это просто не работает. Вот ошибка, которую он выдает:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="f3b066159b38864"]/div/div/a"}

Я получаю xpaths, щелкнув правой кнопкой мыши на элементе с помощью функции проверки Google Chrome. Если кому-то понадобится опубликовать полный код, я с радостью это сделаю.

1 Ответ

1 голос
/ 24 апреля 2020

Попробуйте ниже xpath ::

wait = WebDriverWait(driver, 20)
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//a[contains(text(),'laraleatrump')]")))

Примечание: , пожалуйста, добавьте ниже импорта в ваше решение

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

Рабочий раствор:

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
driver.get("https://www.instagram.com/realdonaldtrump/")
driver.maximize_window()
wait = WebDriverWait(driver, 20)

wait.until(EC.element_to_be_clickable((By.XPATH, "//a[contains(.,'following')]"))).click()

peoples =  wait.until(
            EC.visibility_of_all_elements_located((By.XPATH, "//div[@role='dialog']//div[contains(@class,'PZuss')]//a")))

        for peoplename in peoples:
            print peoplename.text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...