Estou tentando exibir uma página de login para permitir o download de dados do meu fornecedor de energia.
Estou usando Python Selenium.
Aqui está meu código:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Step 1: Start Selenium WebDriver
driver = webdriver.Firefox() # Ensure options are passed correctly
driver.get("https://particulier.edf.fr/bin/edf_rc/servlets/sasServlet?processus=TDB") # Replace with the actual login page URL
# Step 2a: Wait for the "Tout Accepter" button and click it
accept_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "popin_tc_privacy_button_3")))
accept_button.click()
time.sleep(5.0)
driver.quit()
Mas ele exibe um resultado em branco após o clique ser feito. É estranho porque ao usar um navegador "normal", ele redireciona corretamente para a página de login correta. Eu tentei o modo clássico e o modo anônimo e funciona.
Tentei usar um driver do Chrome e do Firefox e obtive o mesmo resultado.
Pode haver algumas travessuras de redirecionamento aí, mas não consigo entender o que é e como contornar isso.
Alguma ajuda? Obrigado, Beb
Ele está exibindo uma página em branco porque o site está detectando o bot (selenium) e não está permitindo a interação com ele. Nesses casos, você pode usar bibliotecas de terceiros para ignorar a detecção do bot. Uma dessas bibliotecas python é undetected_chromedriver .
Consulte o código de trabalho abaixo:
Observação: certifique-se de adicionar/importar a biblioteca undetected_chromedriver no seu IDE.