Frage

I have ~50 automated test cases that works like a charm in both Chrome and Firefox, but IE just won't do it (too bad IE is required).

IE fails at assertions (not all assertions, but a vast majority of them) because (I think) it tries to assert too quickly, e.g. the page is not rendered fast enough.

Here is a piece of code that works in Chrome and FF, but not IE:

driver.manage().timeouts().implicityWait(30, TimeUnit.SECONDS);
driver.navigate().to(targetAdminServer());
Assert.assertTrue("The startpage is displayed", driver.getTitle().startsWith("Admin Portal -"));
driver.findElement(By.id("loginForm:j_id4:username")).sendKeys(loginSAUsername());
driver.findElement(By.id("loginForm:j_id6:password")).sendKeys(loginSAPassword());
driver.findElement(By.id("loginForm:login")).click();
Assert.assertTrue("Login successful", driver.getTitle().contains("Welcome,"));

Where I get the following error:

java.lang.AssertionError: Login successful
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.assertTrue(Assert.java:41)
at first.example.project.webdriver.AddUser.I_am_logged_in_as_a_administrator(AddUser.java:36)
at ✽.Given I am logged in as a "administrator"(C:\path\cucumberfeature1.feature:5)

What I can see during execution is that webdriver fills the fields with username and password and then dies right after clicking the login button.

UPDATE: I may add that if I add a Thread.sleep(1000) before the Assertion that fails it works just fine.

UPDATE2: A friend asked me if it might be because that IE usually runs at 32-bit while the rest of the browsers runs at 64-bit (since I have a 64-bit OS), could this have anything to do with it?

UPDATE3: Tried with both 64-bit and 32-bit IEDriverServer, but none of them asserted in time.

War es hilfreich?

Lösung

After login click you need some wait for element.
When title will be changed you could check, but not before that event.

Andere Tipps

Config as below:

  1. Enter Registry Editor
  2. Refer to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432node\Microsoft\Internet Explorer\MAIN\FeatureControl
  3. Found key FEATURE_BFCACHE, if not found -> Create 1 DWORD iexplore.exe, value=0
  4. Try run your test case on IE and notice problem is resolved or not -> If fail HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl and create iexplore.exe, value=0
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top