Я пытаюсь очистить все экземпляры текста между тегами определенного класса на веб-странице, которая динамически обновляется. Я использую селен с веб-драйвером Chrome в Python.
В обычном браузере, если я щелкну правой кнопкой мыши по нужным элементам и перейду в «Инструменты разработчика> Проверить», я увижу нужные мне теги, например:
2112
где мне нужно число 2112. Они вложены в десятки других внешних тегов. Обратите внимание: если я выберу «Источник страницы» вместо «Проверить» в браузере, появится следующее:
Проблема в том, что я получаю пустой массив, когда использую xPath для поиска этой информации.
Вот соответствующий код в простейшей итерации из того, что я пробовал:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
options = Options()
options.headless = True
driver = webdriver.Chrome(
options=options,
executable_path=chrome_path
)
x_path = '//span[@class="sCell valX poolX"]'
wait = WebDriverWait(driver, 20)
driver.get(url)
wp = driver.find_elements(By.XPATH, x_path)
for n in wp:
print(wp.text)
Я получаю сообщение об ошибке: AttributeError: объект «список» не имеет атрибута «текст»
обратите внимание, что когда я использую:
from selenium.webdriver.support import expected_conditions as EC
wait.until(EC.visibility_of_element_located((By.XPATH, x_path)))
Я получаю исключение TimeoutException
Я не могу не предположить, что что-то упускаю здесь очень просто. У меня нет большого опыта в этом, но это похоже на простую очистку.
Обратите внимание, что если я распечатаю driver.page_source, я получу те же теги, что и «Инструменты разработчика>». Источник страницы':
Подробнее здесь: https://stackoverflow.com/questions/787 ... ing-seleni