selenium находит не тот элемент

я парсю сайт 2gis для удобства взял ссылку на одну карточку хочу собрать номер телефона но как бы не пытался постоянно выводит другую ссылку объекта выше.

from bs4 import BeautifulSoup
import lxml
import requests
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import undetected_chromedriver as uc
from selenium.webdriver import Chrome
import time 

def sobiraem_nomer_telefona(driver):
    a = driver.find_element(By.XPATH, '//div[@class="_t0tx82"]').find_elements(By.XPATH, '//div[@class="_172gbf8"]')
    return a[2].find_element(By.XPATH, '//div[@class="_b0ke8"]').find_element(By.XPATH, '//a[@class="_2lcm958"]').get_attribute("href")

driver = uc.Chrome()
driver.get(https://2gis.kz/almaty/firm/9429940000800292)

print(sobiraem_nomer_telefona(driver))

time.sleep(5)

Ответы (1 шт):

Автор решения: Сергей Кох

Подождать надо, но "до", а не "после":

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



with webdriver.Chrome() as driver:

    driver.get("https://2gis.kz/almaty/firm/9429940000800292")
    wait = WebDriverWait(driver, 10)
    element = wait.until(presence_of_element_located((By.XPATH, '//div[@class="_b0ke8"]/a[@class="_2lcm958"]'))).get_attribute('href')
    print(element)

------------------------

tel:+77013729028
→ Ссылка