Как закончить al oop, если возвращается ноль? - PullRequest
1 голос
/ 30 марта 2020

Если я пропущу этот l oop на определенной странице c и код не сможет найти xPath в местоположении, определенном в l oop, я бы хотел, чтобы l oop завершился. Вот l oop:

for i in range(1, maxListingsForLoops):            #@@@ADVERT NUMBER@@@
    if i > 10:
        break

    xPath = "/html/body/main/div[2]/div/div[5]/div[" +str(i)+ "]/div[1]/a[2]"
    getRenew = browser.find_elements_by_xpath(xPath)
    getRenew = getRenew.get_attribute('href')
    #browser.get(getRenew)
    print(getRenew)
    time.sleep(speed)

Когда я запускаю l oop построчно, я вижу переменную [], догадываясь, что это означает, что она пуста, что будет иметь смысл, как в этом страница не является полной страницей списков, поэтому после пяти циклов она ничего не вернет. В настоящее время я получаю эту ошибку:

$ xPath = "/html/body/main/div[2]/div/div[5]/div[7]/div[1]/a[2]"
$ print(xPath)
>>>>/html/body/main/div[2]/div/div[5]/div[7]/div[1]/a[2]
$ getRenew = browser.find_elements_by_xpath(xPath)
$ print(getRenew)
>>>>[]
$ getRenew = getRenew.get_attribute('href')
>>>>Traceback (most recent call last):
>>>>  File "<input>", line 1, in <module>
>>>>AttributeError: 'list' object has no attribute 'get_attribute'

Кто-нибудь знает, как завершить l oop, когда переменная xPath возвращает ноль, ноль или пусто?

Спасибо.

1 Ответ

1 голос
/ 30 марта 2020

Попробуйте следующее:

if not browser.find_elements_by_xpath(xPath):
    break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...