У меня есть блок кода, использующий Python / Selenium, который должен перебирать различные элементы на веб-странице и отображать, доступен ли элемент, и если он есть, показывать имя и цвет элемента, а также предоставлятьссылка на страницу.Код работает, как и ожидалось, на предметах, которые были распроданы, но когда он достигает первого доступного элемента, python просто возвращает «доступный» и предоставляет имя / URL последнего элемента на странице вместо ожидаемого элемента.блок кода:
shirts = driver.find_elements_by_xpath("""//*[@id='container']/article/div/h1/a""")
colors = driver.find_elements_by_xpath("""//*[@id='container']/article/div/p/a""")
articles = driver.find_elements_by_tag_name('article')
for article in articles:
ActionChains(driver).move_to_element(article).perform()
if article.find_element_by_tag_name('a').text == "sold out":
print("sold out")
elif article.find_element_by_tag_name('a').text == "":
ActionChains(driver).move_to_element(article).perform()
print("available")
for shirt, color in zip(shirts, colors):
shirt_text = shirt.text
color_text = color.text
print shirt_text, color_text
link = article.find_element_by_xpath('div/a').get_attribute('href')
print(link)
Вот фрагмент того, что возвращает приведенный выше код: (ожидаемый элемент, который должен отображаться, это Plaza Sunglasses Magenta)
sold out
sold out
available
Supreme®/Hanes® Crew Socks (4 Pack) White
https://www.supremenewyork.com/shop/accessories/zf83g0dx4/hijz30rq8
sold out
sold out
sold out
sold out
sold out
sold out
и ссылкана страницу, которую я очищаю: http://www.supremenewyork.com/shop/all/accessories
Мой сценарий настроен неправильно или я что-то упустил полностью?