Caro Tarsa, boa noite!
Então, no início do sistema estava utilizando o "innertext", depois tentei o "sendkeys", mas não obtive resultado satisfatório.
A partir daí, tomei conhecimento do Selenium IDE (que é quase um assistente de gravar macro do excel, mas só que no firefox) e comecei a utilizar o VBA com extensão do Selenium. Nessa linguagem, utilizo o Selenium.Type. (no fundo faz a mesma coisa que o "sendkeys".
Veja o script da GOL abaixo. Ele foi o mais próximo de um resultado que cheguei! O problema que estou encontrando é para submeter a página para visualizar os vôos disponíveis.
Código: Selecionar todos
Public Sub Teste_Gol()
Dim selenium As New SeleniumWrapper.WebDriver
selenium.Start "chrome", "http://www.voegol.com.br/"
selenium.Open "/pt-br/Paginas/default.aspx"
selenium.Click "css=a.modal-btn-fechar"
selenium.Click "id=ctl00_PlaceHolderMain_origem"
selenium.Click "id=ctl00_PlaceHolderMain_origem"
selenium.Click "id=ctl00_PlaceHolderMain_origem"
selenium.Click "id=ctl00_PlaceHolderMain_origem"
selenium.Click "id=ctl00_PlaceHolderMain_origem"
selenium.Type "id=ctl00_PlaceHolderMain_origem", "Belo Horizonte - Confins (CNF)"
selenium.Click "id=ctl00_PlaceHolderMain_para"
selenium.Type "id=ctl00_PlaceHolderMain_para", "São Paulo - Congonhas (CGH)"
selenium.Click "id=ida"
selenium.Type "id=ida", "10/10/2016"
selenium.Click "id=volta"
selenium.Type "id=volta", "10/10/2016"
selenium.Click "id=adultos"
selenium.Click "id=bt-disparo"
MsgBox ("Saco!")
selenium.stop
End Sub
Já o código da Azul, estou com problemas na seleção da data de ida e volta, em função do dropdown.
Veja o código:
Código: Selecionar todos
Public Sub ExtracaoDados()
Dim selenium As New SeleniumWrapper.WebDriver
'abrir o site https://viajemais.voeazul.com.br/Search2.aspx
selenium.Start "chrome", "https://viajemais.voeazul.com.br"
selenium.Open "/Search2.aspx"
'Selecionando o Tipo de Viagem: IDA e VOLTA
selenium.Click "//div[@id='travelOptions']/span[1]/a"
selenium.Click "css=a.jqTransformRadio"
'Inserindo Origem e Destino
selenium.Type "id=ControlGroupSearchView2_AvailabilitySearchInputSearchView2_TextBoxMarketOrigin1", "Belo Horizonte - Confins (CNF)"
selenium.Type "id=ControlGroupSearchView2_AvailabilitySearchInputSearchView2_TextBoxMarketDestination1", "São Paulo - Congonhas (CGH)"
'seleciona o dropdown da data de ida
selenium.Click "css=div.jqTransformSelectWrapper > div > span "
'Funciona quando é visível o numero do dropdown
selenium.Click "//div[@id='marketDate_1']/div[2]/div/ul/li[2]/a"
selenium.Click "link=30"
'Não funciona quando seleciono o dia 30 de primeira
'selenium.Click "//div[@id='marketDate_1']/div[2]/div/ul/li[2]/a"
'selenium.Click "link=30"
'Outra forma de selecionar a data, mas também não funciona adequadamente.
'selenium.Click "css=div.diaIda.hoverBlue > div.jqTransformSelectWrapper > div > a.jqTransformSelectOpen"
'selenium.Click ("link=29")
'Restante do código para selecionar o mês de ida, data de volta (dia/mês/ano), selecionar "data flexível" e 1 adulto
selenium.Click "css=div.mesIda.hoverBlue > div.jqTransformSelectWrapper > div > a.jqTransformSelectOpen"
selenium.Click "link=out 16"
selenium.Click "css=#marketDate_2 > div.diaIda.hoverBlue > div.jqTransformSelectWrapper > div > a.jqTransformSelectOpen"
selenium.Click "xpath=(//a[contains(text(),'30')])[2]"
selenium.Click "css=#marketDate_2 > div.mesIda.hoverBlue > div.jqTransformSelectWrapper > div > a.jqTransformSelectOpen"
selenium.Click "xpath=(//a[contains(text(),'out 16')])[2]"
selenium.Click "css=div.searchButtonPrice > span.jqTransformCheckboxWrapper > a.jqTransformCheckbox"
selenium.Click "id=priceSearchCheck"
selenium.Click "css=div.item.hoverBlue > div.jqTransformSelectWrapper > div > span"
selenium.Click "xpath=(//a[contains(text(),'1')])[53]"
selenium.clickAndWait "id=ControlGroupSearchView2_LinkButtonSubmit"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt1Fare5"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt2Fare23"
selenium.Click "css=div.radioArea > span.jqTransformRadioWrapper > a.jqTransformRadio"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt1Fare4"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt1Fare4"
selenium.Click "css=#BackPrices > div.tab-content > table.info-table > tbody > tr.flightInfo > td.fareCol1.promo > div.radioArea > span.jqTransformRadioWrapper > a.jqTransformRadio"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt2Fare22"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt2Fare22"
selenium.Click "css=#BackPrices > div.tab-content > table.info-table > tbody > tr.flightInfo > td.fareCol1.promo > div.radioArea > span.jqTransformRadioWrapper > a.jqTransformRadio.jqTransformChecked"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt2Fare22"
selenium.Click "id=ControlGroupScheduleSelectView_AvailabilityInputScheduleSelectView1_RadioButtonMkt2Fare22"
selenium.stop
End Sub
Obs: Para usar a "extensão" Selenium, basta baixa da internet: Selenium Wrapper type library.
Abraços