4
respostas

Robot web

Quero fazer um robô para incluir algumas informações num site. ( inf de um excel sobre pedidos-incluir os produtos em um pedido). Estou fazendo o curso e percebi que é direcionado totalmente para testes. Garanto que o objetivo é diminuir o trabalho repetitivo. Nesse caso não utilizo o JUnit , pois o "usuário " não vai rodar no eclipse, é essa a ideia? Como informar que houve sucesso ou não na inclusão?

4 respostas

Oi, Mary, tudo bem?

Se seu objetivo é criar um robô para incluir informações num site realmente não precisa usar um framework de testes, como o NUnit, xUnit, etc. Basta usar o WebDriver e código necessário para automatizar as tarefas em uma aplicação do tipo console. Para informar se houve sucesso ou não sugiro que verifique se as informações existem após a inclusão, por exemplo numa tabela.

Se precisar de maiores orientações posta aqui que te ajudamos, ok?

Oi Daniel!

Consegui implementar a ideia usando o WebDriver. Só restou uma dúvida: Como automatizar a partir de uma página aberta ? O driver.get("pagina") abre uma conexão, correto?

Mary, nunca precisei rodar o Selenium em um navegador já aberto. Pesquisando um pouco aqui cheguei a essa solução, mas não testei. Para isso você irá iniciar o serviço ChromeDriverService e se conectar a ele usando o Remote WebDriver. Não sei se te atende porque ao iniciar o serviço o chrome é iniciado.

Me dá um retorno quando puder.

Oi Daniel, Não consigui resolver o problema usando o remoteWebDriver: Entendi que há duas formas de obter a session aberta: 1) WebDriver: WebDriver driver = new FirefoxDriver(); SessionId session = ((FirefoxDriver)driver).getSessionId();

2) Remote WebDriver:DesiredCapabilities capabilities = DesiredCapabilities.firefox();

WebDriver driver = new RemoteWebDriver(new URL("http://127.0.0.1:4722/wd/hub"), capabilities);

SessionId session = ((RemoteWebDriver)driver).getSessionId();

System.out.println("Session id: " + session.toString());

Obtida a session não entendi como conectar-se a ela e pegar o driver.getPageSource().

Encontrei esta solução: https://www.youtube.com/watch?v=4F-laDV9Pl8

System.setProperty("webdriver.chrome.driver","C:\Selenium\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("debuggerAddress","localhost:9014"); WebDriver driver = new ChromeDriver(options); driver.findElement(By.id("identify_email")).sendKeys("jhmv");

Está usando o google chrome e aparentemente funcionou(a partir de uma sessão aberta). Terei sempre que abrir o chrome da seguinte forma?

chrome.exe -remote-debugging-port=9014 --user-data-dir="C:\Selenium\Chorme_Test_Profile"

Qual a lógica deste procedimento?

Obrigada!