Ошибка Selenium

Как спарсить цену предмета?

from selenium import webdriver
from selenium.webdriver.common.by import By

url='https://steamcommunity.com/market/listings/730/Recoil%20Case'
options=webdriver.ChromeOptions()
driver=webdriver.Chrome(executable_path='C:\\Users\\user\\Downloads\\chromedriver_win32/chromedriver.exe',options=options)


try:
    driver.get(url=url)
    normal_price=driver.find_element(By.XPATH,'//*[@id="market_commodity_forsale"]/span[2]').text
    print(normal_price)


except Exception as ex:
    print(ex)


finally:
    driver.close()
    driver.quit()

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

Автор решения: Trema28

Видимо селениум пытается найти элемент до того, как страница прогрузилась. Попробуйте ожидать появление элемента.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

url = 'https://steamcommunity.com/market/listings/730/Recoil%20Case'

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

try:
    driver.get(url)
    element = WebDriverWait(driver, 20).until(
        lambda x: x.find_element(By.XPATH, '//*[@id="market_commodity_forsale"]/span[2]'))
    normal_price = element.text
    print(normal_price)
except Exception as ex:
    print(ex)
finally:
    driver.close()
    driver.quit()

https://www.selenium.dev/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.wait.html#module-selenium.webdriver.support.wait

→ Ссылка