Как получить значение элемента?
тренируюсь на https://www.sravni.ru/bank/gazprombank/debetovaja-karta/visagold/umnaya/?currency=RUB
там есть вкладка бонусы: 
но меня интересует в этой вкладке: 
мой код:
from selenium.webdriver import Firefox
from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Firefox()
driver.wait = WebDriverWait(driver, 10)
driver.get('https://www.sravni.ru/bank/gazprombank/debetovaja-karta/visagold/umnaya/?currency=RUB')
dwu = driver.wait.until
xp1 = '//*[@value="bonus"]/..//*[contains(text(), "Бонусы")]'
xp3 = '//*[following::*[contains(text(), "Отделения Газпромбанка")]]//*[preceding::*[contains(text(), "Как потратить мили")]]//*[contains(text(), "При сумме покупок")]/ancestor::tr//td[2]'
element0 = dwu(EC.presence_of_element_located((By.XPATH, xp1)))
element0.click()
page = driver.page_source
el = driver.find_element(By.XPATH, xp3).get_attribute('textContent')
print(el)
print(WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH, xp3))).get_attribute('textContent'))
Что самое интересное браузер xpath видит а selenium нет ? Как решить проблему ? И 2 вопрос возможно ли получить код страницы на вкладке бонусы без selenium используя requests и подобие ? И 3 вопрос как получить код страницы на вкладке бонусы с selenium ?
Ответы (1 шт):
Автор решения: RomanR
→ Ссылка
Просто selenium использую только для сохранения страницы. Дальше парсю с помощью BeautifulSoup.
После того как страница откроется в нужном месте.
from bs4 import BeautifulSoup
main_page = driver.page_source
soup = BeautifulSoup(main_page, "html.parser")
driver.close()
items = soup.find_all('td', class_='PackageBonus__TableCell-lwbi85-4 kofaZl')
for item in items:
print(item.get_text())
Так как классы одинаковые во всех элементах, там выпадет вся информация.