Como evitar NoSuchElementException no selênio? [duplicado]
Aug 18 2020
novo para tudo isso, então peço desculpas se é uma pergunta estúpida.
aqui está tudo o que estou tentando fazer:
nxt_btn = driver.find_element_by_xpath('/html/body/main/article/section/form/div[2]/button')
nxt_btn.click()
time.sleep(2)
vote_check = driver.find_element_by_xpath('/html/body/main/article/section/form/div[1]/div[2]/div/div/fieldset/div/div/div[2]/div/input')
vote_check.click()
time.sleep(2)
nxt_btn = driver.find_element_by_xpath('/html/body/main/article/section/form/div[2]/button')
nxt_btn.click()
driver.quit()
e ele retorna:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/main/article/section/form/div[1]/div[2]/div/div/fieldset/div/div/div[2]/div/input"}
(Session info: chrome=84.0.4147.125)
Já tentei alterar o tempo de espera, escolhendo diferentes elementos e verificando se está em um iframe, e se estiver, não consigo encontrá-lo apenas subindo o caminho.
Respostas
1 AmrutaPande Aug 18 2020 at 12:18
Em vez de dormir, use esperas explícitas do Selenium
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "XPATH"))
As condições que você pode usar são:
- visibilidade_do_elemento_localizado
- text_to_be_present_in_element
- element_to_be_clickable
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas