Estou tentando clicar nas caixas de seleção e no botão calcular, mas não consigo.
Eu tentei o seguinte:
# checkbox
WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH,'//input[@name="chk_M1"]'))).click()
# button
driver.find_element_by_xpath('//a[@class="button" and contains(text(),"Calculate")]')
Eu consigo selecionar corretamente os elementos quando pesquiso nos elementos ao inspecionar. Eu tentei esperar, mas ainda não consigo selecionar.
Erro:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//a[@class="button" and contains(text(),"Calculate")]"}
No seu código:
Para webdriverwait e EC, é necessário:
Alternativamente, sem importar webdriverwait e EC, você pode usar a seguinte linha:
Se você pretende marcar todas as caixas de seleção, você pode usar a seguinte abordagem:
Em relação à seguinte linha:
O problema é que ele
find_element_by_xpath
está obsoleto no Selenium 4 e versões superiores.Uma alternativa seria usar a seguinte linha:
O código completo:
Você esperou antes de clicar na caixa de seleção, mas não no botão CALCULAR. Não tenho certeza se esse é o problema, mas escrevi o código para esse cenário do zero. Está abaixo e está funcionando bem para mim. Adicionei uma espera e imprimi o número de linhas da página de resultados. Estou assumindo que você fará algo na página de resultados... com os dados da tabela ou baixará o arquivo.
e ele produz