Pessoal, estou tentando automatizar uma aplicação WEB utilizando o Selenium WebDriver (1.10.0) + Java + Firefox, e tenho uma situação em que dou um clique em um link e o mesmo abre uma nova página, o que eu necessito preencher nesta página aparece bastante rápido, porém a página ainda fica carregando por um longo tempo. Tanto utilizando a IDE do selenium quanto executando pelo eclipse o objeto somente é preenchido após ter carregado a página por completo, porém se eu fizer o processo manualmente eu consigo preencher os campos mesmo sem a página ter sido carregada completamente.
Como eu poderia fazer para que não houvesse a necessidade de carregar a página completamente, lembrando que não posso fazer manutenção na página WEB.
Na IDE do Selenium exportei como WebDriver Backed.
No código após executar o comando abaixo:
a execução aguarda a página abrir completamente para aí sim executar o próximo comando.
Segue o código:
package com.example.tests;
import com.thoughtworks.selenium.Selenium;
import com.thoughtworks.selenium.SeleniumException;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import java.io.File;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
public class Loginwebdriverbacked {
private Selenium selenium;
@Before
public void setUp() throws Exception {
FirefoxBinary binary = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
FirefoxProfile profile = new FirefoxProfile();
profile.setProxyPreferences(new Proxy().setAutodetect(true));
WebDriver driver = new FirefoxDriver(binary,profile);
String baseUrl = "http://servidor1/";
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.manage().window().maximize();
selenium = new WebDriverBackedSelenium(driver, baseUrl);
}
@Test
public void testWebdriverbacked() {
selenium.open("/");
selenium.click("link=exact:http://servidor1/pagina1/");
selenium.selectFrame("login");
selenium.focus("id=codigoLogin");
selenium.type("id=codigoLogin", "s5005j");
selenium.type("id=senhaLogin", "12345678");
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
public Selenium getSelenium() {
return selenium;
}
public void setSelenium(Selenium selenium) {
this.selenium = selenium;
}
}