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.
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:
Quando adiciono mais um parâmetro de pesquisa, ele me retorna o campo anterior ao que eu preciso:
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 ?
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Selenium - Como vasculhar um campo
Re: Selenium - Como vasculhar um campo
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.
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.