Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Selenium - Como vasculhar um campo

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
MathGuima
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qui Nov 25, 2021 3:42 pm

Selenium - Como vasculhar um campo

Mensagem por MathGuima »

Boa tarde,
Estou utilizando o Selenium para poder realizar algumas automações no meu trabalho, e agora encontrei uma dificuldade.
Estou conseguindo utilizar normalmente as pesquisas pela Class, ID, Name entre outros para poder realizar a busca de cada elemento, porém agora estou com um problema.
Foto 1.png
Foto 1.png (99.14 KiB) Exibido 2894 vezes
Na imagem acima, podemos ver 2 quadros, ambos com o título de “Extração Scrap”, aonde estou com o mouse é onde eu preciso saber o elemento, onde está escrito “OnGoing” eu tenho que aguardar alterar para “Finished”, quando altera para “Finished” quer dizer que terminou a extração dos dados e então posso realizar o download do arquivo.
O problema que estou enfrentando é que não estou conseguindo realizar essa busca naquele campo.
Para poder realizar a busca em mais de um valor dentro de um campo com a mesma classe, como uma lista de itens por exemplo, estou utilizando o seguinte código:

Public elementos As Selenium.WebElements
Set elementos = driver.FindElementsByClass("iris-button")
For Each elemento In elementos
If elemento.Text = "EXPORT" Then
elemento.Click
Exit For
End If
Next


Assim, quando o texto do elemento é igual ao que eu preciso que seja, ele clica no botão e realiza a ação necessária, tentei utilizar a mesma ideia para fazer uma varredura dentro do campo como um todo, porém não consegui.
Quando utilizo o FindByClass, ele me traz TUDO o que esta escrito dentro do campo:
Foto 2.png
Foto 2.png (22.15 KiB) Exibido 2894 vezes
Quando adiciono mais um parâmetro de pesquisa, ele me retorna o campo anterior ao que eu preciso:
Foto 3.png
Foto 3.png (14.96 KiB) Exibido 2894 vezes
Teria como eu sinalizar que gostaria de realizar a busca no 2° item desse FindElementByClass ? pois eu preciso acessar o 2 elemento com essa classe, e as outras classes são idênticas do anterior.
Alguem sabe o que posso fazer ?


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Selenium - Como vasculhar um campo

Mensagem por webmaster »

MathGuima,

Bom saber que seu entendimento está bem avançado nessa questão. Vamos a alguns pontos.

O HTML provê uma estrutura hierárquica. Elementos podem conter outros, como divs, tables, section. Se você não for exato no sua busca pelo elemento que deseja, pode cair na situação em que está.

O que recomendo é evitar o uso do FindElementsByClass. Classes não são únicas, podendo retornar até elementos diferentes. Como o site é feito por outras pessoas, você tem zero controle disso.

Tente na medida do possível, usar FindElementById, e quando não disponível, ByXPath ou ByCssSelector. Assim, você filtra sua busca no elemento exato que quer encontrar.

Espero que ajude.


Responder