У меня есть функция 'find_products ()', которая перебирает товары на странице и печатает номер модели. Это отлично работает. После того, как он соскребет продукты со страницы, я хочу, чтобы он щелкнул следующую кнопку, если она есть. Чтобы проверить мой XPath, я использую 'try', чтобы убедиться, что элемент присутствует. Это работает, но, конечно, это не петля. Я изо всех сил пытаюсь преобразовать это в цикл и продолжаю звонить, нажимая «следующая страница» и вызывая функцию продукта, пока XPath не вернет ссылку на следующую страницу
try:
nextpage=driver.find_element_by_xpath('//span[@class="srSprite pagnNextArrow"]')
except:
find_products() # calls function with loop to extract products
print("Didnt Find Next Page")
time.sleep(10)
driver.close()
else:
find_products()
nextpage.click()
print("i just clicked next page")
time.sleep(10)
Подобно утвержденному ответу другого пользователя, этот блок кода, показанный ниже, работает. Что я могу использовать, так это то, что делает «try» false в моем примере кода ниже? Если попытка завершается неудачно и становится ложной, когда find_element_by_xpath ничего не возвращает? Это лучше или хуже принятого ответа?
while True:
try:
nextpage=driver.find_element_by_xpath('//span[@class="srSprite pagnNextArrow"]')
find_products()
print("clicking next page")
nextpage.click()
time.sleep(5)
except:
break
find_products() #pick up the products on the last page.