Skip to content

Commit 3a04733

Browse files
committed
Docs + Cleanup
1 parent c11639b commit 3a04733

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# 1.0.0
2+
<i>Initial release</i>

LICENSE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@
187187
identification within third-party archives.
188188

189189
Copyright 2024 XDEV Software
190+
Copyright 2015-2024 Testcontainers contributors
190191

191192
Licensed under the Apache License, Version 2.0 (the "License");
192193
you may not use this file except in compliance with the License.

README.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,25 @@
44

55
# testcontainers-java-selenium
66

7+
A re-implementation of [Testcontainer Selenium/WebDriver](https://java.testcontainers.org/modules/webdriver_containers/) with the following improvements:
8+
* It uses [Selenium's video recorder](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/README.md#video-recording)
9+
* Doesn't require VNC
10+
* No VNC Server started in the browser container (unless explicitly stated) → Saves memory
11+
* Uses [Selenium's implementation](https://github.com/SeleniumHQ/docker-selenium/tree/trunk/Video) and isn't based on [some python code from 2010](https://www.unixuser.org/~euske/python/vnc2flv/index.html)
12+
* Way more customization options for e.g. ``framerate``, ``codec``, ``preset`` ...
13+
* Uses ``mp4`` as default recording format (wider support in comparison to ``flv``)
14+
* [Renders while saving the video](https://github.com/SeleniumHQ/docker-selenium/blob/4c572afd1173b5bd49fa2def3b54ea552fccee85/Video/video.sh#L126) (not when finished which takes additional time)
15+
* Stops the recorder before saving the file so that there is no way that [it runs forever](https://github.com/testcontainers/testcontainers-java/discussions/6229).
16+
* Automatically tries to select a alternative Selenium version for the docker image if it [doesn't exist](https://github.com/SeleniumHQ/docker-selenium/issues/1979).
17+
* Added support for [NoVNC](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/README.md#using-your-browser-no-vnc-client-is-needed) so that no dedicated VNC client is required
18+
* Improve creation of video filenames
19+
* Removed hard dependency on Selenium-Java.<br/>Only required when using ``CapabilitiesBrowserWebDriverContainer``
20+
* Everything can be ``@Override``n if required
21+
* Caches automatic Selenium version detection via classpath
722

823
## Installation
924
[Installation guide for the latest release](https://github.com/xdev-software/testcontainers-java-selenium/releases/latest#Installation)
1025

11-
1226
## Support
1327
If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services/support).
1428

testcontainers-java-selenium/src/main/java/software/xdev/testcontainers/selenium/containers/browser/BrowserWebDriverContainer.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@
4848
import software.xdev.testcontainers.selenium.containers.recorder.SeleniumRecordingContainer;
4949

5050

51+
/**
52+
* A chrome/firefox/custom container based on SeleniumHQ's standalone container sets.
53+
*/
5154
@SuppressWarnings({"java:S119", "java:S2160"})
5255
public class BrowserWebDriverContainer<SELF extends BrowserWebDriverContainer<SELF>>
5356
extends GenericContainer<SELF>
@@ -308,13 +311,13 @@ protected void validateImage()
308311
// In this case try to look for alternative images
309312
try
310313
{
311-
final Field imageField = GenericContainer.class.getDeclaredField("image");
312-
imageField.setAccessible(true);
313-
final RemoteDockerImage remoteDockerImage = (RemoteDockerImage)imageField.get(this);
314+
final Field fImage = GenericContainer.class.getDeclaredField("image");
315+
fImage.setAccessible(true);
316+
final RemoteDockerImage remoteDockerImage = (RemoteDockerImage)fImage.get(this);
314317

315-
final Method getImageNameMethod = RemoteDockerImage.class.getDeclaredMethod("getImageName");
316-
getImageNameMethod.setAccessible(true);
317-
final DockerImageName currentImage = (DockerImageName)getImageNameMethod.invoke(remoteDockerImage);
318+
final Method mGetImageName = RemoteDockerImage.class.getDeclaredMethod("getImageName");
319+
mGetImageName.setAccessible(true);
320+
final DockerImageName currentImage = (DockerImageName)mGetImageName.invoke(remoteDockerImage);
318321

319322
this.setDockerImageName(WORKING_BROWSER_IMAGES_TRANSLATION.computeIfAbsent(
320323
currentImage,
@@ -494,8 +497,8 @@ public interface TestRecordingFileNameFactory
494497
public static class DefaultTestRecordingFileNameFactory implements TestRecordingFileNameFactory
495498
{
496499
public static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss");
497-
public static final String PASSED = "PASSED";
498500

501+
public static final String PASSED = "PASSED";
499502
public static final String FAILED = "FAILED";
500503

501504
@Override

0 commit comments

Comments
 (0)