É que, na verdade, ainda não pensei num código propriamente!
É o seguinte:
Acesso um site (eproc.jfpr.jus.br/eprocV2/) em que há uma miscelânea de consultas disponíveis, cada uma com um relatório diferente como resultado. Eu, até agora, vinha programando o Selenium pra setar essa consulta de maneira automática, de acordo com o relatório pretendido, algo como isso:
def SetaConsulta(): #Essa consulta cria a lista dos processos com prazo em status "aguardando abertura".
global marcador
menu = browser.find_elements_by_class_name('ms-choice')
menu[0].click()
opcoes = browser.find_elements_by_tag_name('label')
opcoes[16].click() #Seleciona Curitiba na lista.
opcoes[28].click() #Seleciona Paranagua na lista.
grau = Select(browser.find_element_by_id('selGrauJudicial'))
grau.select_by_index(1)
prazo = Select(browser.find_element_by_id('selPrazo'))
prazo.select_by_index(1)
dtInicio = browser.find_element_by_id('txtDataInicio')
dtInicio.send_keys(dataInicio)
dtFim = browser.find_element_by_id('txtDataTermino')
dtFim.send_keys(dataFim) #dataFim
inclusao = browser.find_element_by_id('selInclusaoProcurador')
opcoesInclusao = inclusao.find_elements_by_tag_name('option')
checkbox1 = browser.find_element_by_id('optChkPoloOposto')
testeCheckbox1 = browser.find_element_by_id('optChkPoloOposto').is_selected()
if testeCheckbox1 == False:
checkbox1.click()
checkbox2 = browser.find_element_by_id('optChkProcuradoresAssociados')
testeCheckbox2 = browser.find_element_by_id('optChkProcuradoresAssociados').is_selected()
if testeCheckbox2 == False:
checkbox2.click()
checkbox3 = browser.find_element_by_id('optChkExibirApensos')
testeCheckbox3 = browser.find_element_by_id('optChkExibirApensos').is_selected()
if testeCheckbox3 == False:
checkbox3.click()
checkbox4 = browser.find_element_by_id('optChkCpfCnpjSeparado')
testeCheckbox4 = browser.find_element_by_id('optChkCpfCnpjSeparado').is_selected()
if testeCheckbox4 == False:
checkbox4.click()
botao = browser.find_element_by_id('btnConsultar')
botao.click()
Esse método se transformou num problema conforme as necessidades de relatório foram se avolumando. São n checkboxes, menus dropdown com dezenas de opções, e assim por diante. Então pensei: posso usar o usuário como construtor dessa função! Ele vai fazer uma vez a configuração do formulário, eu gravo isso, depois é só chamar de novo essa configuração já identificada! Sei que o Selenium tem uma IDE pro Chrome que grava como se fosse uma macro, mas na máquina do usuário não tenho como instalar nem o Python, nem a IDE.
Queria capturar os cliques e inserções com algum tipo de lambda, pra salvar posições de ponteiro, digitações, e assim "montar" essa função. Mas fiquei confuso de como fazer isso, e depois desse texto todo espero não tê-lo confundido também!