2012-11-07 42 views
5

Tôi đã ghi lại thử nghiệm của mình trong Selenium IDE; nó chạy tốt trong Firefox và Chrome. Khi tôi chạy nó trong IE 9, tôi tiếp tục nhận được lỗi này. Tôi mới viết mã và đang gặp khó khăn khi tìm câu trả lời cho điều này. Nếu bất cứ ai có thể giải thích cho tôi về các điều khoản của giáo dân, điều gì đang xảy ra/tại sao điều này có thể xảy ra, tôi sẽ đánh giá cao điều đó.Selenium: JUnit4: WebDriver: IE: NoSuchElementException khi sử dụng IE

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

Java Code:

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

có thể bạn hãy dán mã html ur cho trang web của bạn ở đây? –

+0

Rất tiếc, tôi không được phép đăng mã theo chính sách của công ty. và lời giải thích về những gì đang xảy ra có thể là đủ để ai đó có thể nhìn thấy những thứ tương tự. Tôi đánh giá cao câu trả lời nhanh chóng của bạn mặc dù. Nó được đánh giá cao. – user1806215

+0

Điều gì về Chính sách StackOverflow? – Amey

Trả lời

0

tôi sẽ đề nghị in ra driver.getPageSource() trước khi cuộc gọi và kiểm tra xem nếu html đó là trên trang hiện tại phù hợp với mong đợi của bạn.

Nếu nó khớp với những gì bạn mong đợi thì tôi sẽ in nội dung văn bản của tất cả các thẻ khớp với By.cssSelector("BODY") và xem có bất kỳ thẻ nào chứa văn bản bạn mong muốn hay không.

Điều này sẽ thu hẹp nơi xảy ra lỗi - bạn có thể cần phải tìm cách khác để tìm yếu tố này.

0

Nội bộ Bằng cách sử dụng XPath và các vấn đề về vỏ bọc với trình khám phá internet.

Hãy thử sử dụng

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

thay vì

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

* $ "));.

tôi tin rằng sẽ làm việc cho bạn

+0

Đây là một bài đăng cũ, nhưng nghĩ rằng nó có thể hữu ích cho người khác. – santon

Các vấn đề liên quan