#python #windows #selenium
Вопрос:
У меня возникли проблемы с поиском класса на веб-сайте adidas. Я получаю ошибку выше при попытке найти класс в html. Я пытаюсь автоматизировать процесс выбора определенного размера с помощью моего ботинка. Когда я просматриваю html-код, класс, который я нахожу в коде, — это то, что я написал в коде. Я неправильно называю класс?
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
def UrlGenwithSize(size,model,name):
base=580 ####size of shoe
mysize=(size-4)*20 #### for a shoe of size 6.5
finalSize=base mysize
Url="https://www.adidas.com/us/" name "/" model ".html?forceSelSize=" model "_" str(finalSize)
return Url
def UrlGenProduct(name,model):
url="https://www.adidas.com/us/" name "/" model ".html"
return url
def CheckStock(myUrl,model):
try:
driver = webdriver.Chrome(executable_path=r'C:Python39Libsite-packageswebdriver_botwebdriverschromedriver.exe')
driver.get(myUrl)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.Class_Name, "size-selector___2htsB"))) ###sets a time max of 10 secs and waits for the elements
username = driver.find_element_by_class_name('sizes___3Stmf fractions-decoration-reset___22Rwq')
buttons = username.find_elements_by_tag_name("button") ###get all the options into a list
buttonsList = []
for button in buttons:
buttonsList.append(button.get_attribute('innerHTML')) ###a list with sizes
for sizes in buttonsList:
if sizes.isdigit(): ###printing only if size in the list is a digit
print("Size" sizes "for" model "is available")
finally:
driver.quit()
url=UrlGenProduct("Kaptir Shoes","EE9513")
CheckStock(url,"EE9513")
size=int(input("Please enter size"))
myURL=UrlGenwithSize(6.5,"EE9513","Kaptir Shoes")
addToCart(myURL)
Комментарии:
1. Используйте это ИМЯ.CLASS_NAME с учетом регистра.
Ответ №1:
Попробуйте ПРОПИСНЫЕ буквы
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "size-selector___2htsB")))