Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
VBA SELENIUM - HIPERLINKS FINDBYTAG('A') - FRAGMENTANDO LINKS
-
- Acabou de chegar
- Mensagens: 3
- Registrado em: Ter Nov 30, 2021 7:31 am
VBA SELENIUM - HIPERLINKS FINDBYTAG('A') - FRAGMENTANDO LINKS
Boa tarde a todos.
Estou desenvolvendo um projeto para minha empresa no qual eu preciso clicar em um botão que contem um hyperlink, porém este elemento não foi bem definido em sua programação. Segue abaixo a inspeção do elemento:
Logo, utilizando o webdriver selenium com python consegui desenvolver o programa da seguinte forma:
Porém, meu projeto consiste em transformar o script em python para uma macro VBA. Na macro, o programa se encontra da seguinte maneira:
Sendo que o resultado na verificação imediata é apresentado a seguir:
Como podemos ver, o programa VBA está extraindo os links de forma errada, pois ele está quebrando o link com o id do material em varios links com id em ordem crescente. Como posso corrigir este erro, onde o VBA consegue extrair os links corretamente sem quebrar o link em diversos IDs?
Agradeço atenção de todos
Estou desenvolvendo um projeto para minha empresa no qual eu preciso clicar em um botão que contem um hyperlink, porém este elemento não foi bem definido em sua programação. Segue abaixo a inspeção do elemento:
Logo, utilizando o webdriver selenium com python consegui desenvolver o programa da seguinte forma:
Porém, meu projeto consiste em transformar o script em python para uma macro VBA. Na macro, o programa se encontra da seguinte maneira:
Sendo que o resultado na verificação imediata é apresentado a seguir:
Como podemos ver, o programa VBA está extraindo os links de forma errada, pois ele está quebrando o link com o id do material em varios links com id em ordem crescente. Como posso corrigir este erro, onde o VBA consegue extrair os links corretamente sem quebrar o link em diversos IDs?
Agradeço atenção de todos
Re: VBA SELENIUM - HIPERLINKS FINDBYTAG('A') - FRAGMENTANDO LINKS
Você esta complicando algo simples rs
Seguem exemplos em Python e VBA
Seguem exemplos em Python e VBA
Código: Selecionar todos
#Pyhton
link = driver.find_element_by_xpath("//a[contains(@href, 'GeraLaudo')]").get_attribute("href")
driver.get(link)
#VBA
link = driver.FindElementByXPath("//a[contains(@href, 'GeraLaudo')]").Attribute("href")
driver.Get link
-
- Acabou de chegar
- Mensagens: 3
- Registrado em: Ter Nov 30, 2021 7:31 am
Re: VBA SELENIUM - HIPERLINKS FINDBYTAG('A') - FRAGMENTANDO LINKS
Agradeço sua resposta. O que complica na realidade é a forma como foi desenvolvido o site.
Além da string "GeraLaudo" eu preciso verificar se o id do material corresponde. Essa parte do programa eu já consegui consertar, porém empaquei no seguinte problema, será que consegue me ajudar?
o programa está da seguinte maneira:
e a saída do debug.print é a vista na imagem em anexo abaixo.
Como eu consigo fazer com que seja checado o idmaterial dentro do link, dessa maneira podendo pegar o link que corresponda ao link que desejo?
Minha ideia é colocar a variavel "compara" como condição de um If, mas por algum motivo a função InStr não está retornando corretamente.
Além da string "GeraLaudo" eu preciso verificar se o id do material corresponde. Essa parte do programa eu já consegui consertar, porém empaquei no seguinte problema, será que consegue me ajudar?
o programa está da seguinte maneira:
Código: Selecionar todos
plataforma.Refresh
Application.Wait (Now + TimeValue("00:00:05"))
Set allLinks = plataforma.FindElementsByTag("a")
For Each link2 In allLinks:
link = link2.Attribute("href")
Debug.Print link
compara = InStr(1, link, idmaterial, vbTextCompare)
Debug.Print idmaterial
Debug.Print compara
Next
Minha ideia é colocar a variavel "compara" como condição de um If, mas por algum motivo a função InStr não está retornando corretamente.
-
- Acabou de chegar
- Mensagens: 3
- Registrado em: Ter Nov 30, 2021 7:31 am
Re: VBA SELENIUM - HIPERLINKS FINDBYTAG('A') - FRAGMENTANDO LINKS
Bom dia a todos,
Sei que o tópico foi finalizado já faz um tempo, mas gostaria de saber como você conseguiu ajustar o código para o VBA pois estou passando por um problema semelhante, preciso extrair os links de um site e selecionar apenas os que possuem um mesmo texto em comum na URL, porém o código está puxando todos os links do site e vem uma enorme quantidade e não só os q preciso.
Agradeço a todos.
Re: VBA SELENIUM - HIPERLINKS FINDBYTAG('A') - FRAGMENTANDO LINKS
Meltex,
Utilizando o FindElementsByTag, todos os elementos serão trazidos a partir do elemento pai. O trabalho de filtro seria feito por você depois disso.
No caso do colega MatheusNNeri foi examente isso:
Acho que dá para adaptar para o que precisa.
Att
Utilizando o FindElementsByTag, todos os elementos serão trazidos a partir do elemento pai. O trabalho de filtro seria feito por você depois disso.
No caso do colega MatheusNNeri foi examente isso:
Código: Selecionar todos
For Each link2 In allLinks:
link = link2.Attribute("href")
Debug.Print link
compara = InStr(1, link, idmaterial, vbTextCompare) 'se o link no href conter o valor de idmaterial
Debug.Print idmaterial
Debug.Print compara
Next
Att