Ok. Úgy látom nem érthető a jelenség. Megpróbálom kifejteni egy példaprogrammal. A kód szépségét most ne nézzétek, annak is örülnék első körben, ha működne.
A lényeg a FirefoxDiver lefut.
A Chrome eredetileg mindig kiakadt, ha a driver.findElement(By.name("s")).click();-nél, hogy nem található. Ezért raktam be a ExpectedConditions.elementToBeClickable(new ByName("s"));, mert úgy látszik nem várta meg, hogy felépüljön az oldal, hanem egyből klikkelt. Most viszont IE alatt nem működik. Az IE egyszerűen megáll és vár és vár az ExpectedConditions.elementToBeClickable(new ByName("s")); soron. Előtte viszont működött.
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.By.ByLinkText;
import org.openqa.selenium.By.ByName;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
public class DzTestSuite {
private static WebDriver driver;
private static String baseUrl = "http://localhost";
public static void main(String[] args) {
WebDriver[] drivers = {new ChromeDriver(), new FirefoxDriver(), new InternetExplorerDriver()};;
for (WebDriver webDriver : drivers) {
driver = webDriver;
Logger.getLogger(DzTestSuite.class.getName()).log(Level.INFO,driver.toString());
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
runTests();
driver.quit();
}
}
private static void runTests() {
testHistory();
}
private static void testHistory() {
driver.get(baseUrl + "/magyar-angol-szotar/");
driver.findElement(By.name("w")).clear();
driver.findElement(By.name("w")).sendKeys("a");
ExpectedConditions.elementToBeClickable(new ByName("s"));
driver.findElement(By.name("s")).click();
ExpectedConditions.elementToBeClickable(new ByLinkText("the"));
driver.findElement(By.linkText("the")).click();
driver.findElement(By.cssSelector("a[title=\"magyar-angol-szotar\"]")).click();
try {
Assert.assertTrue(verifyTextPresent("the"));
} catch (InterruptedException ex) {
Logger.getLogger(DzTestSuite.class.getName()).log(Level.SEVERE, null, ex);
}
Logger.getLogger(DzTestSuite.class.getName()).log(Level.INFO, "testHistory Finished");
}
private static boolean verifyTextPresent(String text) throws InterruptedException {
long end = System.currentTimeMillis() + 5000;
while (System.currentTimeMillis() < end) {
if (driver.findElements(By.xpath("//*[contains(text(),\"" + text + "\")]")).size() > 0) {
return true;
}
Thread.sleep(1000);
}
return false;
}
}