Skip to content

Commit bf72ff2

Browse files
committed
Fixed an issue related to screenshots being recorded unnecessarily
1 parent 4238af6 commit bf72ff2

File tree

8 files changed

+74
-11
lines changed

8 files changed

+74
-11
lines changed

pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@
6262
<commons.collections.version>4.4</commons.collections.version>
6363
<commons.compress.version>1.27.1</commons.compress.version>
6464
<commons.net.version>3.11.1</commons.net.version>
65-
<commons.codec.version>1.17.1</commons.codec.version>
66-
<freemarker.version>2.3.33</freemarker.version>
67-
<selenium.version>4.29.0</selenium.version>
68-
<htmlunit.driver.version>4.29.0</htmlunit.driver.version>
65+
<commons.codec.version>1.18.0</commons.codec.version>
66+
<freemarker.version>2.3.34</freemarker.version>
67+
<selenium.version>4.32.0</selenium.version>
68+
<htmlunit.driver.version>4.32.0</htmlunit.driver.version>
6969
<jsonassert.version>1.5.1</jsonassert.version>
7070
<jsoup.version>1.15.4</jsoup.version>
7171
<joda-time.version>2.13.0</joda-time.version>
@@ -84,15 +84,15 @@
8484
<jimfs.version>1.3.0</jimfs.version>
8585
<jbehave.version>4.8.3</jbehave.version>
8686
<ant.version>1.10.12</ant.version>
87-
<restassured.version>5.5.0</restassured.version>
87+
<restassured.version>5.5.2</restassured.version>
8888
<wiremock.version>3.13.0</wiremock.version>
8989
<thymeleaf.version>3.1.2.RELEASE</thymeleaf.version>
9090
<javassist.version>3.29.2-GA</javassist.version>
9191
<jackson.version>2.18.1</jackson.version>
9292
<xchart.version>3.5.2</xchart.version>
9393
<ehcache.version>3.10.8</ehcache.version>
9494
<!-- Kotlin config -->
95-
<kotlin.version>2.1.10</kotlin.version>
95+
<kotlin.version>2.1.21</kotlin.version>
9696
<kotlin.compiler.jvmTarget>17</kotlin.compiler.jvmTarget>
9797
</properties>
9898
<dependencyManagement>

serenity-core/src/main/java/net/serenitybdd/core/photography/PageSourceRecorder.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public Optional<File> intoDirectory(Path path) {
3030
byte[] pageSource = render(getPageSource());
3131

3232

33-
if (WebDriverFactory.isAlive(driver) && (pageSource.length > 0)) {
33+
if (WebDriverFactory.isAlive(driver) && (pageSource.length > 0) && shouldRecordPageSource()) {
3434
try {
3535
Path pageSourceFile = Files.createTempFile(path, "pagesource", ".html");
3636
Files.write(pageSourceFile, pageSource);
@@ -42,6 +42,11 @@ public Optional<File> intoDirectory(Path path) {
4242
return Optional.empty();
4343
}
4444

45+
private boolean shouldRecordPageSource() {
46+
// Disable this for now
47+
return false;
48+
}
49+
4550

4651
private final static String HTML_PRISM_HIGHLIGHT = "<html lang='en'><head><link href='prism/prism.css' rel='stylesheet' /></head><body><script src='prism/prism.js'></script><body><div><pre><code class='language-html'>";
4752
private final static String HTML_CLOSE = "</code></pre></div></body></html>";

serenity-core/src/main/java/net/thucydides/core/steps/BaseStepListener.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1094,7 +1094,7 @@ private void takeEndOfStepScreenshotFor(final TestResult result) {
10941094
}
10951095

10961096
private void takeEndOfStepScreenshotForRecording(final TestResult result, List<ScreenshotAndHtmlSource> screenshots) {
1097-
if (currentTestIsABrowserTest()) {
1097+
if (currentTestIsABrowserTest() && shouldTakeEndOfStepScreenshotFor(result)) {
10981098
takeRecord(MANDATORY_SCREENSHOT, result, screenshots);
10991099
}
11001100
}
@@ -1135,6 +1135,7 @@ private void take(final ScreenshotType screenshotType, TestResult result) {
11351135
}
11361136

11371137
private void takeRecord(final ScreenshotType screenshotType, TestResult result, List<ScreenshotAndHtmlSource> screenshots) {
1138+
11381139
if (shouldTakeScreenshotsWithoutCurrentStep(result)) {
11391140
try {
11401141
grabScreenshots(result).forEach(

serenity-core/src/main/java/net/thucydides/core/webdriver/capabilities/ChromiumOptionsBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public static ChromiumOptions<?> fromDesiredCapabilities(DesiredCapabilities cap
2828
String capabilitySectionName) {
2929
// General capabilities
3030
ChromiumOptions<?> chromiumOptions =
31-
(capabilities.getBrowserName().equalsIgnoreCase("chrome") || capabilities.getBrowserName().equalsIgnoreCase("chromium")) ?
31+
(capabilities.getBrowserName().isEmpty() || capabilities.getBrowserName().equalsIgnoreCase("chrome") || capabilities.getBrowserName().equalsIgnoreCase("chromium")) ?
3232
new ChromeOptions() : new EdgeOptions();
3333

3434
// Process standard W3C capabilities

serenity-reports/src/main/java/net/thucydides/core/reports/html/BaseReportingTask.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.io.BufferedWriter;
1010
import java.io.File;
1111
import java.io.IOException;
12+
import java.io.Writer;
1213
import java.nio.charset.StandardCharsets;
1314
import java.nio.file.Files;
1415
import java.nio.file.Path;

serenity-reports/src/main/java/net/thucydides/core/reports/html/HtmlAcceptanceTestReporter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.io.BufferedWriter;
2828
import java.io.File;
2929
import java.io.IOException;
30+
import java.io.Writer;
3031
import java.net.URI;
3132
import java.nio.charset.StandardCharsets;
3233
import java.nio.file.Files;
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package net.thucydides.core.reports.html;
2+
3+
import java.io.BufferedWriter;
4+
import java.io.IOException;
5+
import java.io.Writer;
6+
import java.nio.charset.StandardCharsets;
7+
import java.nio.file.Files;
8+
import java.nio.file.Path;
9+
10+
public class HtmlMinifyingWriter extends Writer {
11+
12+
public static Writer minifyingWriter(Path outputPath) throws IOException {
13+
BufferedWriter baseWriter = Files.newBufferedWriter(outputPath, StandardCharsets.UTF_8);
14+
if (outputPath.toString().endsWith(".html")) {
15+
return new HtmlMinifyingWriter(baseWriter);
16+
}
17+
return baseWriter;
18+
}
19+
20+
private final Writer delegate;
21+
private final StringBuilder buffer = new StringBuilder();
22+
23+
public HtmlMinifyingWriter(Writer delegate) {
24+
this.delegate = delegate;
25+
}
26+
27+
@Override
28+
public void write(char[] cbuf, int off, int len) {
29+
buffer.append(cbuf, off, len);
30+
}
31+
32+
@Override
33+
public void flush() throws IOException {
34+
compressAndWrite();
35+
delegate.flush();
36+
}
37+
38+
@Override
39+
public void close() throws IOException {
40+
compressAndWrite();
41+
delegate.close();
42+
}
43+
44+
private void compressAndWrite() throws IOException {
45+
String content = buffer.toString();
46+
47+
// Basic HTML whitespace compression
48+
String minified = content
49+
.replaceAll(">\\s+<", "><") // remove whitespace between tags
50+
.replaceAll("\\s{2,}", " ") // collapse multiple spaces
51+
.replaceAll("^\\s+|\\s+$", ""); // trim leading/trailing whitespace
52+
53+
delegate.write(minified);
54+
}
55+
}

serenity-screenplay-webdriver/src/test/java/net/serenitybdd/screenplay/webtests/integration/actions/DevToolsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import net.serenitybdd.screenplay.webtests.integration.ScreenplayInteractionTestBase;
77
import org.junit.Test;
88
import org.junit.runner.RunWith;
9-
import org.openqa.selenium.devtools.v131.performance.Performance;
10-
import org.openqa.selenium.devtools.v131.performance.model.Metric;
9+
import org.openqa.selenium.devtools.v136.performance.Performance;
10+
import org.openqa.selenium.devtools.v136.performance.model.Metric;
1111

1212
import java.util.ArrayList;
1313
import java.util.List;

0 commit comments

Comments
 (0)