Created
September 24, 2017 17:58
-
-
Save 4M01/2592a0e9b3bdce9eada89ca0dd8f7353 to your computer and use it in GitHub Desktop.
Capture JavaScript console error using Selenium WebDriver Test Class
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tests; | |
import org.openqa.selenium.JavascriptExecutor; | |
import org.openqa.selenium.WebDriver; | |
import org.openqa.selenium.chrome.ChromeDriver; | |
import org.openqa.selenium.logging.LogEntries; | |
import org.openqa.selenium.logging.LogEntry; | |
import org.openqa.selenium.logging.LogType; | |
import org.openqa.selenium.logging.Logs; | |
import org.openqa.selenium.support.ui.WebDriverWait; | |
import org.testng.Assert; | |
import org.testng.annotations.*; | |
/** | |
* Created by Amol Chavan on 09-09-2017. | |
*/ | |
public class JavaScriptConsoleTests { | |
WebDriver driver; | |
String methodName; | |
@BeforeClass | |
void Setup(){ | |
System.setProperty("webdriver.chrome.driver", "C:\\Automation\\Selenium\\drivers\\chromedriver.exe"); | |
driver = new ChromeDriver(); | |
driver.manage().window().maximize(); | |
} | |
@Test | |
void checkRedditPageTitle(){ | |
driver.get("https://www.reddit.com"); | |
waitTillPageLoad(); | |
String pageTitle = driver.getTitle(); | |
Assert.assertEquals(pageTitle,"reddit: the front page of the internet"); | |
methodName= "checkRedditPageTitle"; | |
} | |
@Test | |
void checkSuperDemoPageTitle(){ | |
driver.get("https://superlogin-demo.herokuapp.com/login"); | |
waitTillPageLoad(); | |
String pageTitle = driver.getTitle(); | |
Assert.assertEquals(pageTitle,"SuperLogin Demo"); | |
methodName = "checkSuperDemoPageTitle"; | |
} | |
private void waitTillPageLoad(){ | |
new WebDriverWait(driver, 30).until(driver -> ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete")); | |
} | |
@AfterMethod | |
void logJavaScriptConsoleError() { | |
Logs logs = driver.manage().logs(); | |
LogEntries logEntries = logs.get(LogType.BROWSER); | |
for(LogEntry logEntry :logEntries) | |
{ | |
System.out.println("Console log found in Test- "+ methodName); | |
System.out.println("__________________________________________________________"); | |
if (logEntry.getMessage().toLowerCase().contains("error")) { | |
System.out.println("Error Message in Console:"+logEntry.getMessage()); | |
} else if (logEntry.getMessage().toLowerCase().contains("warning")){ | |
System.out.println("Warning Message in Console:"+logEntry.getMessage()); | |
}else{ | |
System.out.println("Information Message in Console:"+logEntry.getMessage()); | |
} | |
} | |
} | |
@AfterClass | |
void tearDown(){ | |
driver.close(); | |
driver.quit(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment