Monday, May 20, 2024
Homepage · c#
 Popular · Latest · Hot · Upcoming
194
rated 0 times [  195] [ 1]  / answers: 1 / hits: 45983  / 11 Years ago, thu, august 15, 2013, 12:00:00

I want to build an automation testing, so I have to know the errors that appear in the console of chrome.



there is an option to get the error lines that appear in the console?



In order to see the console: right click somewhere in the page, click inspect element and then go to console.


More From » c#

 Answers
19

I don't know C# but here's Java code that does the job, I hope you can translate it to C#



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.LoggingPreferences;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class ChromeConsoleLogging {
private WebDriver driver;


@BeforeMethod
public void setUp() {
System.setProperty(webdriver.chrome.driver, c:\path\to\chromedriver.exe);
DesiredCapabilities caps = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
driver = new ChromeDriver(caps);
}

@AfterMethod
public void tearDown() {
driver.quit();
}

public void analyzeLog() {
LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);
for (LogEntry entry : logEntries) {
System.out.println(new Date(entry.getTimestamp()) + + entry.getLevel() + + entry.getMessage());
//do something useful with the data
}
}

@Test
public void testMethod() {
driver.get(http://mypage.com);
//do something on page
analyzeLog();
}
}


Pay attention to setUp method in above code. We use LoggingPreferences object to enable logging. There are a few types of logs, but if you want to track console errors then LogType.BROWSER is the one that you should use. Then we pass that object to DesiredCapabilities and further to ChromeDriver constructor and voila - we have an instance of ChromeDriver with logging enabled.



After performing some actions on page we call analyzeLog() method. Here we simply extract the log and iterate through its entries. Here you can put assertions or do any other reporting you want.



My inspiration was this code by Michael Klepikov that explains how to extract performance logs from ChromeDriver.


[#76330] Wednesday, August 14, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
shylaelisan

Total Points: 37
Total Questions: 94
Total Answers: 110

Location: Angola
Member since Tue, May 5, 2020
4 Years ago
;