Задать вопрос
kuchuluk
@kuchuluk

Почему не срабатывает клик по элементу при открытии станицы selenium python?

Здравствуйте!
Парсер открывает главную страницу яндекс маркета на selenium, вводит ключевую фразу:
driver = get_chromedriver(use_proxy=False, user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36')
        driver.maximize_window()
        driver.get(url=url)
        time.sleep(30)

        input_datas = getInputDataForParse()
        
        for one_data in input_datas:
            search_input = driver.find_element(By.ID, 'header-search')
            search_input.clear()
            search_input.send_keys(one_data['title'])
            time.sleep(random_sleep_time)
            search_input.send_keys(Keys.ENTER)
            time.sleep(random_sleep_time)

затем переходит по ссылкам:
snippet_links = driver.find_elements(By.CSS_SELECTOR, 'a[data-auto="snippet-link"]')
original_window = driver.current_window_handle
for link in snippet_links:
    h3_tag = link.find_element(By.TAG_NAME, 'h3')
    ActionChains(driver).move_to_element(h3_tag).click().perform()

переход срабатывает. На странице товара есть элемент, при клике на который должно появляться всплывающее окно, вот он на скрине
661ee14e51401241306261.png
делаю клик по нему:
product_description_more = WebDriverWait(driver, 60).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, 'span[aria-label="Все характеристики"]'))
)
parent_div = product_description_more.find_element(By.XPATH, './..')
parent_div.click()

всплывающий элемент не появляется. Хотя когда вебдрайвер открывает браузер, если я кликаю мышью по нему, то он появляется. В чем может быть дело?
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
parent_div = product_description_more.find_element(By.XPATH, './..')
parent_div.click()

Слушатель клика висит на span[aria-label="Все характеристики"], а не на родителе выше, как это понять:
- Через инструменты разработчика браузера.
- Удалив родителя из dom-ма и кликнув заново - обработчик работает.

КартинкО

Ищем обработчик:
661f6ed41bc75628552858.png

Находим родителя и удаляем его:
661f6ca9ebb13701728853.png

Смотрим, работает ли без родителя обработчик (работает):
661f6caf4d5f0320289210.png
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы