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