Как Python и Selenium заставить найти текст?

Ссылка скопирована
1 ответ

Всем привет, пытаюсь указать через селениум найти блок текста 1 и блок текста 2, но выдает ошибку, что текст не найден. Указывал через селектор и xpath, но все равно не видит.
Прилагаю код и картинку того, что нужно найти

# Функция для поиска элемента по селектору ID def find_element_by_id(driver, id):     try:         return WebDriverWait(driver, 10).until(             EC.presence_of_element_located((By.ID, id))         )     except TimeoutException:         return None  # Функция для сравнения текста из двух элементов def compare_text(text1, text2):     # Преобразуем текст в нижний регистр, чтобы сделать сравнение более точным     text1 = text1.lower()     text2 = text2.lower()      # Используем метод `similarity()` Bard API для сравнения двух текстов     similarity = bard.similarity(text1, text2)      # Возвращаем значение, указывающее, подходит ли текст     return similarity >= 0.8  # Находим элемент 1 element_1 = find_element_by_id(driver, "#klecks-app > tui-root > tui-dropdown-host > div > task > flex-view > flex-common-view > div.tui-container.tui-container_adaptive.flex-common-view__main > div > main > flex-element > flex-container > flex-element:nth-child(1)")  # Находим элемент 2 element_2 = find_element_by_id(driver, "#klecks-app > tui-root > tui-dropdown-host > div > task > flex-view > flex-common-view > div.tui-container.tui-container_adaptive.flex-common-view__main > div > main > flex-element > flex-container > flex-element:nth-child(4)")  # Получаем текст из элементов text1 = element_1.text text2 = element_2.text  # Сравниваем текст is_similar = compare_text(text1, text2)  # Выводим результат сравнения if is_similar:     result = "Тексты похожи" else:     result = "Тексты не похожи"  print(result)

# Функция для поиска элемента по селектору ID def find_element_by_id(driver, id): try: return WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, id)) ) except TimeoutException: return None # Функция для сравнения текста из двух элементов def compare_text(text1, text2): # Преобразуем текст в нижний регистр, чтобы сделать сравнение более точным text1 = text1.lower() text2 = text2.lower() # Используем метод `similarity()` Bard API для сравнения двух текстов similarity = bard.similarity(text1, text2) # Возвращаем значение, указывающее, подходит ли текст return similarity >= 0.8 # Находим элемент 1 element_1 = find_element_by_id(driver, "#klecks-app > tui-root > tui-dropdown-host > div > task > flex-view > flex-common-view > div.tui-container.tui-container_adaptive.flex-common-view__main > div > main > flex-element > flex-container > flex-element:nth-child(1)") # Находим элемент 2 element_2 = find_element_by_id(driver, "#klecks-app > tui-root > tui-dropdown-host > div > task > flex-view > flex-common-view > div.tui-container.tui-container_adaptive.flex-common-view__main > div > main > flex-element > flex-container > flex-element:nth-child(4)") # Получаем текст из элементов text1 = element_1.text text2 = element_2.text # Сравниваем текст is_similar = compare_text(text1, text2) # Выводим результат сравнения if is_similar: result = "Тексты похожи" else: result = "Тексты не похожи" print(result)

Как Python и Selenium заставить найти текст?

Как Python и Selenium заставить найти текст?

Дополнительно:

упрощайте ваши селекторы и найдете

  • сергей кузьмин, к сожалению не получается, что только не пробовал итак упростил, ему нужно просто найти первый блок с текстом и второй блок с текстом, какие только элементы с их селекторами не пробовал брать
  • но говорит же вам проклятая машине что нету того что вы ищете - нету
    (nonetype это означает)
    упрощайте = укорачивайте и чтобы находил
    тогда будет и текст в нем

    а не можете сами публикуйте содержимое того что надо или его родителей как HTML и это может помочь другим помочь вам

  • сергей кузьмин, даже если укорачивать - не получается. Если вам будет удобнее, могу скинуть скриншот или видео какой именно выбираю селектор, вдруг не тот. Особо не развит а этой теме еще.
  • xreapzzz, честно говоря подозреваю вам рано еще перечислять на баланс за приглашенного друга - учитесь пока элементы искать ...
  • Ответы:

    Тестируй css селекторы в отладочной консоли браузера, используя, либо штатный querySelector('xxx'), либо, при наличии, jquery $('xxx'). Используй встроенный генератор css селектора (правая кнопка на элементе, копировать,...)

    • Спасибо, буду пробовать и отпишу

    Попробуй искать по xpath, а не по ID. Тогда точно найдешь.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Никита Орлов Ответ

    Для поиска текста с использованием Python и Selenium вы можете воспользоваться методами поиска элементов на веб-странице. Вот пример кода на Python, который позволит вам найти текст на веб-странице с помощью Selenium:

    from selenium import webdriver
     
    # Запуск браузера
    driver = webdriver.Chrome()
     
    # Переход на нужную страницу
    driver.get("http://www.example.com")
     
    # Нахождение элемента по тексту
    element = driver.find_element_by_xpath("//*[contains(text(), 'Текст который нужно найти')]")
     
    # Вывод текста элемента
    print(element.text)
     
    # Закрытие браузера
    driver.quit()

    from selenium import webdriver # Запуск браузера driver = webdriver.Chrome() # Переход на нужную страницу driver.get("http://www.example.com") # Нахождение элемента по тексту element = driver.find_element_by_xpath("//*[contains(text(), 'Текст который нужно найти')]") # Вывод текста элемента print(element.text) # Закрытие браузера driver.quit()

    В этом примере мы используем метод find_element_by_xpath, чтобы найти элемент на странице по тексту. Мы используем функцию contains, чтобы найти элемент, содержащий определенный текст. После того как мы находим элемент, мы можем получить текст этого элемента с помощью свойства text.

    Пожалуйста, убедитесь, что у вас установлены необходимые библиотеки (Selenium) и драйвер браузера (например, ChromeDriver). Также обратите внимание, что для поиска элементов на странице может потребоваться использование других методов (например, find_element_by_id, find_element_by_class_name и т. д.), в зависимости от структуры HTML-кода страницы.

    Надеюсь, что этот пример поможет вам решить вашу проблему с поиском текста на веб-странице с помощью Python и Selenium. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их. Удачи!

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно