Enviar uma data para campo em site com selenium

1,064 views
Skip to first unread message

Valesca edom nunes

unread,
Sep 16, 2020, 6:52:59 PM9/16/20
to Selenium Brasil
Pessoal, já tentei de tudo e não consigo enviar uma data p um site para fazer uma pesquisa.
Consegui automatizar tudo, ate fazer download do arquivo. Mas, a data ele não informa de jeito nenhum.
No arquivo em anexo, colei a parte da tela do site. É um campo que abre p marcar a data calendário, mas permite digitar. Por isto achei que seria possível enviar o valor.
Coloquei o código e as opções que usei e não adiantou. . Fiz pesquisa pelo id pela classe, usei xpath com caminho completo e xpath com caminho menor . No arquivo, em anexo, coloquei tb a parte do desenvolvedor para ver como aparece.
 Em negrito, a parte que não está funcionando.
Se alguém puder ajudar, fico muito grata. Estou iniciando.
Obrigada

import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup
import getpass

login = input('LOGIN: ')
senha=getpass.getpass()
dtiniciousu = input('Digite a data início consulta: ')
input("pressione enter p continuar")
browser = webdriver.Chrome(executable_path=r"C:\Chrome\chromedriver.exe")
browser.get(url) 
browser.maximize_window()
username = browser.find_element_by_id('ctl00_ContentPlaceHolder_ucAutenticarUsuariosLogin_UsuarioTextBox')
password = browser.find_element_by_id('ctl00_ContentPlaceHolder_ucAutenticarUsuariosLogin_SenhaTextBox')
username.send_keys(login)
password.send_keys(senha)

btn=browser.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder_ucAutenticarUsuariosLogin_PainelLogin"]/table/tbody/tr[5]/td/div/div')
btn.click()
#pagina da consulta final
browser.get(url)
browser.maximize_window()
#desmarcar consulta rapida
btn=browser.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder_ConsultaRapidaASPxCheckBox_S_D"]')
btn.click()


dtinicio = browser.find_element_by_id('ctl00_ContentPlaceHolder_DTInicioASPxDateEdit_I')
#dtinicio=browser.find_element_by_name('ctl00$ContentPlaceHolder$DTInicioASPxDateEdit')

#caminho completo
#btn=browser.find_element_by_xpath('/html/body/form/div[4]/div[4]/table/tbody/tr/td[2]/table/tbody/tr[2]/td[1]/table/tbody/tr/td[1]/input')

#btn=browser.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder_DTInicioASPxDateEdit_I"]')
#btn.click()

dtinicio.send_keys(dtiniciousu)
#dtinicio.submit()
#btn.send_keys(dtiniciousu)


#botão pesquisar
btn=browser.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder_PesquisarASPxButton"]')
btn.click()

#dowload do arquivo
btn=browser.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder_XlsExportASPxButton_CD"]')
btn.click()



erro entrada datas selenium.docx

Andre Damasceno Dias

unread,
Sep 17, 2020, 6:16:14 AM9/17/20
to Valesca edom nunes, Selenium Brasil
Bom dia,

Já tentou passar sem formatação?

value="16092020"

Pelo que entendi você disse que coloca os dados sem formatação, mas acho que está a passar no value com formatação. Já tentou dessa forma?


Andre Damasceno Dias
MBA, CTFL
  
Play the game, test the game


--
Visite em https://groups.google.com/d/forum/selenium-brasil
---
Você recebeu essa mensagem porque está inscrito no grupo "Selenium Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para selenium-bras...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/selenium-brasil/c35d1e68-ef71-4150-8ed9-1a645feea6d0n%40googlegroups.com.

Valesca edom nunes

unread,
Sep 17, 2020, 11:06:27 AM9/17/20
to Selenium Brasil
Bom dia! Passo sem formatação.
Antes de fazer input, testei assim, tb:

btn=browser.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder_DTInicioASPxDateEdit_I"]')
btn.click()

btn.send_keys("14092020")

Francisco Matos

unread,
Sep 17, 2020, 11:12:22 AM9/17/20
to Valesca edom nunes, Selenium Brasil
Bom dia, 

Já verificou se não tem nenhum iframe?



--
Francisco Matos



Andre Damasceno Dias

unread,
Sep 17, 2020, 11:14:48 AM9/17/20
to Francisco Matos, Valesca edom nunes, Selenium Brasil
Boa tarde,

No teste manual o campo continua preenchido ao sair com TAB ou enter?

btn.sendKeys(Keys.TAB);
ou
btn.sendKeys(Keys.ENTER);


Andre Damasceno Dias
MBA, CTFL
  
Play the game, test the game

Valesca edom nunes

unread,
Sep 17, 2020, 1:12:11 PM9/17/20
to Selenium Brasil
Boa tarde! Quando chego nesta página que tem as datas, a data inicial e final já estão preenchidas. Se der tab avança mantendo conteúdo. Enter não faz nada. Acho que tem a ver com os campos que são do tipo dropdow. Ao clicar aparece calendário p escolher as datas.
Talvez tenha algum comando diferente p fazer neste campo.
Obrigada.

Valesca edom nunes

unread,
Sep 17, 2020, 1:15:26 PM9/17/20
to Selenium Brasil
Não sei como vejo esta opção que falaste de iframe.
Vou pesquisar na web algo a respeito.
Obrigada

Francisco Matos

unread,
Sep 17, 2020, 2:16:40 PM9/17/20
to Valesca edom nunes, Selenium Brasil
Pelo console do navegador você consegue verificar 

$x('//*/iframe')

Já aconteceu comigo do selenium não estar conseguindo preencher o formulário, quando fui verificar, esse formulário que estava  tentando manipular estava dentro de um "iframe".  Quando for esse caso, você tem que fazer o switch to iframe para depois fazer o input da informação.





--
Francisco Matos



Patrick Bressan Bremm

unread,
Sep 17, 2020, 6:36:25 PM9/17/20
to Selenium Brasil
Boa noite,

Quando você manda o sendKeys no campo ocorre alguma exceção no console? Ou ele simplesmente ignora... Seguindo o script.

Att,
Patrick Bremm

Guilherme Pereira

unread,
Jul 2, 2023, 12:28:16 AM7/2/23
to Selenium Brasil
Consegui resolver fazendo um By.XPATH igual o da data e logo dps inserindo o código normal
Reply all
Reply to author
Forward
0 new messages