Skip to content

Instantly share code, notes, and snippets.

@4M01
Created September 24, 2017 17:58
Show Gist options
  • Save 4M01/2592a0e9b3bdce9eada89ca0dd8f7353 to your computer and use it in GitHub Desktop.
Save 4M01/2592a0e9b3bdce9eada89ca0dd8f7353 to your computer and use it in GitHub Desktop.
Capture JavaScript console error using Selenium WebDriver Test Class
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