Мне было интересно, можете ли вы перебрать исключение, пока оно не станет ложным, вот так:

try:
    get_element = driver.find_element_by_xpath('xpath')
except as ElementTime:
    while ElementTime is True:
        sleep(1)
        get_element = driver.find_element_by_xpath('xpath')

0
BuddyPal 11 Май 2021 в 13:59

1 ответ

Лучший ответ

Вам нужно что-то вроде этого:

while True:
    try:
        get_element = driver.find_element_by_xpath('xpath')
        break
    except as ElementTime:
        sleep(1)

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

count = 0
max_trials = 10 
while count < max_trials:
    try:
        max_trials += 1
        get_element = driver.find_element_by_xpath('xpath')
        break
    except as ElementTime:
        sleep(1)

2
paradocslover 11 Май 2021 в 11:07