Как использовать «если», чтобы проверить наличие элемента на веб-странице с Python? - PullRequest
1 голос
/ 11 апреля 2019

Я создал цикл (while True) для автоматизации задачи на сайте с помощью python.Этот код щелкает два поля, пока на странице не появится элемент

(browser.find_element_by_id ('formComp: buttonBack').

Когда этот элемент появится, я хочу, чтобы цикл остановился и перешел к следующему блоку кода.

Я проверял это таким образом, но он допустил ошибку.Python сообщил, что элемент "formComp: buttonback" не найден.Но это все, если не найдено, продолжить цикл:

    while (browser.find_element_by_id('formComp:repeatCompromissoLista:0:tableRealizacao:0:subtableVinculacoes:0:vinculacao_input')):
        vinc = wait.until(EC.presence_of_element_located((By.ID, 'formComp:repeatCompromissoLista:0:tableRealizacao:0:subtableVinculacoes:0:vinculacao_input')))
        vinc = browser.find_element_by_id('formComp:repeatCompromissoLista:0:tableRealizacao:0:subtableVinculacoes:0:vinculacao_input')
        vinc.send_keys('400')
        enterElem5 = wait.until(EC.element_to_be_clickable((By.ID, 'formComp:buttonConfirmar')))
        enterElem5 = browser.find_element_by_id('formComp:buttonConfirmar')
        enterElem5.send_keys(Keys.ENTER)
        time.sleep(int(segundosv))
        if (browser.find_element_by_id('formComp:buttonRetornar')== True):
            break
        else:
            continue

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Попробуйте, как эта надежда, это поможет. Проверьте счетчик length кнопки больше 0.

if (len(browser.find_elements_by_id('formComp:buttonRetornar'))>0):
        break
else:
        continue
0 голосов
/ 12 апреля 2019

find_element_by_id() не возвращает False, когда элемент не найден. Вместо этого он поднимает selenium.common.exceptions.NoSuchElementException. Вы можете обработать исключение, чтобы получить управление потоком, которое вы ищете:

try:
    browser.find_element_by_id('formComp:buttonRetornar')
    break
except NoSuchElementException:
    continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...