Closed Bukama closed 1 year ago
I am unable to reproduce this issue. I'm using the following test to try to reproduce: ScreenshotPngTest.java
I also try to change the test setup to:
seleniumJupiter.getConfig().enableScreenshotWhenFailure();
... and the result is still positive.
I tried Java 11 and Java 17, and it works in both cases. The versions I'm using are Selenium 4.11.0 and Selenium Jupiter 4.3.6.
Can you please have a try with that versions and the former test?
Thank you for your check!
Can you please have a try with that versions and the former test?
Of course I will and will try to dig deeper if it still occurs. In every case I'll keep you updated!
Even after updating Selenium and Selenium-Jupiter I get the errors and no screenshot. Seems I have to take a far deeper look and maybe create a reproducer I can publish. Will most probably take some time, as sh** hit the fan on Monday and so I can't put much time into the test automation atm :(
Okay, I figured it out:
sel.jup.screenshot
and no longer ´sel.jup.screenshot.at.the.end.of.tests`. Seems I missed that during migration.So this can be closed here :)
Description of the problem:
When I first created my selenium project with Java 8 and Selenium 3 and SeleniumJupier taking Screenshots using the build in function was super smooth and worked out of the box.
I then upgraded the project to Java 17 (to make use of the language features, e.g. records) and Selenium 4. Since this update, taking screenshots failes to refletion access problems. We all know that with Java 9 Oracle began to reduce access to internal packages via JPMS and also via reflection - which causes problems here.
Note: I know that (up to a certain JDK, not in mind which one) you can "hack" the access due console parameters, but I think the user of the framework should not be forced to do this. Especially as Oracle wants to unallow this in general. The Selenium Jupier user guide does not say anything about such problems on higher Java versions (or I have not found in the docuement - at least nothing is said in the screenshots section)
StackOverflow question similar to the underlying problem: https://stackoverflow.com/questions/57885828/netty-cannot-access-class-jdk-internal-misc-unsafe
Browser and version: Our tests run agains chrome 108, without Docker
Operating system: Win 10, 64bit
Selenium-Jupiter version: 4.3.3 with Selenium 4.9.0 with Junit 5.9.3
Selenium-Jupiter use:
In our general setup of the project so the config is not set in every test case we do this:
Called for
sel.jup.screenshot.at.the.end.of.tests
with valuetrue
andsel.jup.screenshot.format
with valuepng
. That worked fine before the rise of the Java version.Selenium-Jupiter traces:
Full TRACE of the run (internal data Xed out, dont worry about the logged PW, they are only technical test users for exactly the selenium tests in a seperate environment)