How to generate an XSLT report in Selenium WebDriver

XSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents. To generate an XSLT report in Selenium WebDriver, we can follow these steps:

Step 1: Execute Selenium WebDriver tests

Using the preferred programming language (Java, Python, etc.), write and execute the Selenium WebDriver tests to generate the test results. Here is a sample of the Selenium WebDriver test in Java:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumTest {
public static void main(String[] args) {
// Set the path to the ChromeDriver executable
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
// Create an instance of the WebDriver (e.g., ChromeDriver)
WebDriver driver = new ChromeDriver();
// Open a website
driver.get("https://www.example.com");
// Perform test actions
driver.findElement(By.name("username")).sendKeys("testuser");
// Close the browser
driver.quit();
}
}

Step 2: Capture test results

Capture the relevant test results during test execution, such as test case statuses (pass/fail), error messages, or any other information we want to include in the report. This information can be stored in a data structure or object.

Step 3: Transform test results to XML

To convert the captured test results into an XML format, we can use libraries like JAXB (Java Architecture for XML Binding) or any other XML serialization library provided by the preferred programming language to transform the test results into XML format.

Step 4: Display XML transformation

To apply XSLT transformation, create an XSLT stylesheet that defines how the XML test results should be transformed into an HTML report.

Here’s a simple example of an XSLT stylesheet (report.xslt) that transforms the XML test results into an HTML table:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Test Results</title>
</head>
<body>
<h1>Test Results</h1>
<table>
<tr>
<th>Test Case</th>
<th>Status</th>
</tr>
<xsl:for-each select="test-results/test-case">
<tr>
<td><xsl:value-of select="@name" /></td>
<td><xsl:value-of select="@status" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

With the help of this code, the HTML table is generated, having two columns named Test Case and Status, populated with the name and status data of the XML document, respectively.

Step 5: Apply XSLT transformation using a library

To apply the XSLT stylesheet to the XML test results, use an XSLT transformation library provided by the preferred programming language. The library will generate an HTML report as output by taking the XML and XSLT files as input.

For example, in Java, the javax.xml.transform package can be used to perform the transformation:

import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class XSLTReportGenerator {
public static void main(String[] args) throws Exception {
Source xmlSource = new StreamSource("test-results.xml");
Source xsltSource = new StreamSource("report.xslt");
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xsltSource);
transformer.transform(xmlSource, new StreamResult("test-report.html"));
System.out.println("XSLT report successfully generated.");
}
}

Here's the line-by-line explanation of the code:

  • Lines 1–2: We import the necessary classes from the javax.xml.transform and javax.xml.transform.stream packages.

  • Line 4: We define a Java class named XSLTReportGenerator.

  • Line 5: We create a main method that serves as the program's entry point.

  • Lines 7–8: We load the XML and XSLT files using StreamSourceThe StreamSource is a class used to create a source object from a file or an input stream..

  • Line 10: We create an instance of the TransformerFactory class to provide a factory API for creating Transformer objects.

  • Line 11: We create a Transformer instance responsible for performing the XSLT transformation.

  • Line 13: We perform the transformation by calling the transform() method. This line applies the XSLT stylesheet to the XML and saves the output in the test-report.html file.

  • Line 15: We print a success message to the console.

Step 6: Open the generated report

We will have an HTML report named as test-report.html, generated based on the XSLT stylesheet after the completion of the transformation. We can open the report generated by line 13 of the code in a web browser or share it with others for analysis.

Therefore, we can generate an XSLT report from our Selenium WebDriver test results by following these steps, which allow us to present the test execution details in a readable and structured format.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved