Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Identificando elemento com o XPath

Estou tentando clicar em um botão de Login Social de uma aplicação, mas o mesmo não tem "id" ou outro elemento que o identifique mais facilmente, então optei por chegar até o elemento através do XPath. Minha dúvida está em relação à sintaxe que devo passar ao XPath para que ele encontre o elemento.

Abaixo está como montei:

IWebElement btnFacebook = driver.FindElement(By.XPath("/body/div[2]/form/div/div[3]/div/span/iframe/html/body/div/div/div/div/div/table/tbody/tr/td[2]/span")); btnFacebook.Click();

Está correta a maneira como montei?

5 respostas

A sintaxe parece correta sim.

Você conseguiu chegar até o elemento?

O que eu faria no seu lugar, é tentar simplificar esta query. Talvez utilizando classes de alguns elementos... enfim.

Parece certo sim.

Carlos, infelizmente não consegui, mas vou seguir seu conselho e ver se consigo.

Valeu.

André, como é um iframe, o ideal é você utilizar o switchTo().frame() do WebDriver e a partir daí, buscar seu elemento.

Eu precisei disso há um tempo, mas não tenho mais o código comigo pra poder postar aqui, mas me lembro que não tive maiores complicações utilizando essa técnica.

Tenta assim e fala aqui se deu certo.

Consegui, a alternativa que usei foi buscar o ID da div onde o botão está.

IWebElement btnFacebook = driver.FindElement(By.Id("loginSocial-facebook")); btnFacebook.Click();

"div id="loginSocial-facebook" class="fb-login-button fb_iframe_widget"..."

solução!

Opa. Show de bola, então.

Marca a questão como solucionada aí, pra se alguma outra pessoa estiver com uma dúvida parecida, poder achar seu post.

Abraços!