2012-11-07 10 views
5

Zarejestrowałem swój test w Selenium IDE; działa dobrze w przeglądarkach Firefox i Chrome. Kiedy uruchomię go w IE 9, ciągle otrzymuję ten błąd. Jestem nowy w kodowaniu i mam problem ze znalezieniem odpowiedzi na to. Jeśli ktokolwiek może mi wyjaśnić słowami świeckich, co się dzieje/dlaczego tak się dzieje, byłbym wdzięczny.Selen: JUnit4: WebDriver: IE: NoSuchElementException podczas używania IE

org.openqa.selenium.NoSuchElementException: Unable to find element with css selector == BODY (WARNING: The server did not provide any stacktrace information) 

kod Java:

assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Final[\\s\\S]*$")); 
+0

mógłbyś wkleić ur kod HTML na twoją stronę tutaj? –

+0

Niestety, nie wolno mi publikować naszego kodu według zasad firmy. a wyjaśnienie tego, co się dzieje, może wystarczyć, aby ktoś widział podobne rzeczy. Doceniam twoją szybką odpowiedź. To jest doceniane. – user1806215

+0

Co z zasadami StackOverflow? – Amey

Odpowiedz

0

Proponuję drukowania driver.getPageSource() przed wywołaniem i sprawdzić, czy kod HTML, który znajduje się na bieżącej stronie pasuje do Twoich oczekiwań.

Jeśli jest to zgodne z oczekiwaniami, wydrukowałbym zawartość tekstową wszystkich tagów pasujących do By.cssSelector("BODY") i sprawdzam, czy któryś z nich zawiera tekst, którego można się spodziewać.

Spowoduje to zawężenie miejsca błędu - może być konieczne znalezienie innego sposobu znalezienia tego elementu.

0

Wewnętrznie Używa XPath i sprawy obudowy z internet explorer.

Spróbuj użyć

assertTrue(driver.findElement(By.cssSelector("body")).getText().matches("^[\\s\\S]*Final[\\s\\S]*$")); 

zamiast

assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Final[\\s\\S] 

* $ "));.

Uważam, że powinien pracować dla Ciebie

+0

To jest stary post, ale pomyślałem, że może być pomocny dla innych. – santon