Почему моя программа всегда находит класс, но если я ищу этот класс в HTML, он не существует?

#html #selenium-webdriver

#HTML #selenium-webdriver

Вопрос:

Итак, проблема в том, что если я ищу вручную class = «warn», он находит его только в том случае, если у продавца нет карточки. Это потому, что текст, в котором говорится, что карта недоступна, имеет этот класс. Но программа ниже всегда выдает мне TRUE, даже если Продавец продает карту и class =»warn» не найден.

Я уже посмотрел, если это просто потому, что «вы принимаете наши файлы cookie?» у bar также есть класс, но я уже пробовал эту программуэ не ищет класс «warn clickable».

 from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
chrome_path = r"C:UsersDesktopchrome_driver_73chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get("https://www.cardmarket.com/en/Magic/MainPage/browseUserProducts?idCategory=1amp;idUser=10000amp;resultsPage=0amp;cardName=dasfsafamp;idLanguage=0amp;isFoil=0amp;isSigned=0amp;isPlayset=0amp;isAltered=0")
def check_if_card_exists():
    try :
         driver.find_element_by_class_name('warn')
         return True
    except NoSuchElementException:
        return False

print(check_if_card_exists())
  

Итак, вывод этого кода ВЕРЕН, что хорошо, но если вставить cardname, где он фактически показывает результат, подобный ……resultsPage=0amp;cardName=Opt…. он также выводит TRUE, но в HTML-коде я не нахожу class = ‘warn’.
Полный URL с карточкой opt:
https://www.cardmarket.com/en/Magic/MainPage/browseUserProducts ?idCategory=1amp;idUser=10000amp;resultsPage=0amp;cardName=Optamp;idLanguage=0amp;isFoil=0amp;isSigned=0amp;isPlayset=0amp;isAltered=0

Ответ №1:

введите описание изображения здесь

Похоже, что есть класс с ‘warn’.

Комментарии:

1. Итак, есть ли функция в swlenium, где я могу точно искать class=’warn’, а не предупреждать кликабельно?

2. driver.find_elements_by_xpath(“//*[@class=‘warn’]”) — Попробуйте это.