[Python] Preenchimento Automatizado de Múltiplas Escolhas Forms via Selenium (Python) [fechada]

Discussão em 'Python' iniciado por Stack, Novembro 2, 2024.

  1. Stack

    Stack Membro Participativo

    Preciso carregar milhares de respostas em um Google Forms (que é a porta de entrada para certa base de dados). Estou em busca de uma solução que preencha campos de múltiplas escolhas do Google Forms. Eu tenho as respostas tabuladas em planilha. A resposta pode ser qualquer uma entre centenas de opções existentes na lista de múltipla escolha.

    Pelo que li, a solução seria trabalhar com o texto exibido, mas não está dando certo.

    Abaixo, segue o código que elaborei para um formulário teste (compartilhado com todos).

    No protótipo, a seleção automática funcionará sempre para a opção "Pessego", uma vez que o XPATH está definido para essa opção. No entanto, eu preciso que seja feita a seleção da alternativa correta para cada linha da base de dados. Ou seja, preciso localizar e selecionar algum caminho no Forms que seja corresponde às opções da base de dados.

    Caso alguém possa me ajudar, agradeço muito!!!!!! Basta copiar o código abaixo para o VS Code e executar. A base de dados é um simples aruqivo do Excel com 3 linhas: Uva, Pessego, Banana.

    **# Importação para ler planilhas**
    import pandas as pd

    **# Importações para trabalhar com web elementos**
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.common.exceptions import ElementNotInteractableException
    from selenium.webdriver import ActionChains
    from selenium.webdriver.support.ui import Select
    import time

    **#Nomear arquivo base de dados**

    base = "opcoes.xlsx"

    **#Ler base de dados**

    df = pd.read_excel(base)
    #print(df)

    **# Trazer as linhas e colunas**

    for index,row in df.iterrows():
    print("index: "+ str(index) + " Fruta = " + row["Fruta"])

    **# Seleção do Driver e endereço do Forms**

    driver = webdriver.Chrome()
    driver.get("https://docs.google.com/forms/d/e/1FAIpQLSeEa4j7v1TeLg_2saE69UlBl6nguydp88aNkV6T4wL6IF66ng/viewform") # Link do Forms

    **# Seleção de uma opção**

    driver.find_element(By.XPATH,'//*[@id="mG61Hd"]/div[2]/div/div[2]/div/div/div/div[1]') # Caminho da pergunta "Fruta"
    driver.find_element(By.XPATH,'//*[@id="mG61Hd"]/div[2]/div/div[2]/div/div/div/div[2]/div[1]/div/span/div/div[1]/label/div/div[2]/div/span').click() # Caminho da opção 1.
    time.sleep(2)

    **#Enviar formulário, clicando no botão "Enviar"**

    driver.find_element(By.XPATH,'//*[@id="mG61Hd"]/div[2]/div/div[3]/div[1]/div[1]/div/span/span').click()
    time.sleep(2)
    driver.quit()

    Continue reading...

Compartilhe esta Página