/**
* Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados.
*
* e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro
* dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do
* Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão.
*
* Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA;
* sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR.
* Veja a Licença Pública Geral Menor GNU para maiores detalhes.
*/
package br.gov.camara.edemocracia.selenium;
import java.util.Random;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.Select;
public class BatePapoEdemoPostar implements Runnable {
private static final String USUARIO = "userPostar";
private static final String EMAIL = USUARIO + "@teste.br";
public static void main(String[] args) throws Exception {
for (int cont = 0; cont < 5; cont++) {
Thread thread = new Thread(new BatePapoEdemoPostar(cont));
thread.start();
}
}
private int cont;
public BatePapoEdemoPostar(int cont) {
this.cont = cont;
}
public void carregarJanela(DesiredCapabilities cap, int cont) throws Exception {
// WebDriver driver = new HtmlUnitDriver();
WebDriver driver = new FirefoxDriver(cap);
driver.get(Configuracoes.getURLDaSala());
try {
WebElement element = driver.findElement(By.name("nome"));
element.sendKeys(USUARIO + cont);
element = driver.findElement(By.name("email"));
element.sendKeys(EMAIL + cont);
element = driver.findElement(By.name("uf"));
Select Select = new Select(element);
Select.selectByIndex(3);
element = driver.findElement(By.name("comando"));
element.submit();
Actions act = new Actions(driver);
act.contextClick();
} catch (NoSuchElementException e) {
throw new Exception("aconteceu algum problema inesperado ao tentar entrar no chat", e);
}
try {
WebElement element = driver.findElement(By.cssSelector("input#_cdchatroom_WAR_cdchatportlet_msg"));
for (int i = 0; i < 2000; i++) {
while (!element.isEnabled())
;
element.clear();
element.sendKeys("teste mensagem " + i + " do " + USUARIO);
element.submit();
Random geradorDeNumerosAleatorios = new Random();
Number numeroAleatorio = geradorDeNumerosAleatorios.nextInt(3) * 1000;
Thread.sleep(numeroAleatorio.longValue());
}
} catch (NoSuchElementException e) {
System.out.println("Campo de escrever do chat não foi encontrado.");
try {
WebElement element = driver.findElement(By.cssSelector("div.portlet-msg-error"));
element.getText().trim().toLowerCase().contains("O apelido escolhido já está sendo utilizado nesta sala.".toLowerCase());
} catch (NoSuchElementException internalE) {}
}
}
public void run() {
Proxy proxy = new Proxy();
proxy.setNoProxy(Configuracoes.getNoProxyURL());
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
try {
carregarJanela(cap, cont);
} catch (Exception e) {
e.printStackTrace();
}
}
}