3
respostas

Selenium handling event of user click

Senhores, Abaixo segue um código no qual eu registro meus eventos. Gostaria de fazer um spy no qual o usuário clique em um link e eu imprima "o usuário clicou no link href="/paginaProibida" do site "xxx.com"!".

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.events.EventFiringWebDriver;


public class programMain {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

         FirefoxDriver driver = new FirefoxDriver();
         EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);

        EventHandler handler = new EventHandler();
        eventDriver.register(handler);
        eventDriver.get("http://toolsqa.wpengine.com/automation-practice-switch-windows/");
        WebElement element = eventDriver.findElement(By.id("target"));
        element.click();

    }

}
3 respostas

Oi Douglas.

O que quer é pegar o valor href de um link? Se sim, vc pode fazer algo assim:

WebElement element = eventDriver.findElement(By.id("target"));
String hrefDoElemento = element.getAttribute("href");

Não é isso Lazaro! Eu quero ficar monitorando o browser. Quero fazer o que o Selenium IDE faz. Porém, para outra finalidade. Quero que quando o sujeito acessar o browser (pode ser através do meu programa) eu consiga monitorar o click do mouse ou o input num campo, etc.

Oi Douglas,

o Selenium não é a ferramenta que você procura. A ideia dele não é observar o navegador, mas sim interagir com ele para simular o usuário.

O que você quer aqui é, no método que recebe a requisição para um determinado caminho, imprimir um valor, além de fazer o trabalho em si. O backend da aplicação é que deveria se preocupar com isso. Há até ferramentas de logging que já se preocupam em fazer isso por você. Em Java, por exemplo, a mais famosa se chama Log4J.

Se você não tem acesso ao backend para fazer essa alteração, você ainda pode colocar essa configuração num NGinX ou o que quer que faça o redirecionamento dos requests para a aplicação.

De toda forma, note que sem acesso ao servidor, não há uma forma legal de fazer isso. ;-)

[]s