Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Visual comparisons port to java library #1040

Open
kabhinav26 opened this issue Aug 30, 2022 · 10 comments
Open

[Feature] Visual comparisons port to java library #1040

kabhinav26 opened this issue Aug 30, 2022 · 10 comments

Comments

@kabhinav26
Copy link

Playwright node.js already has "Visual comparisons" functionality which can be used for visual regression testing, we need the same in playwright java library as well.

image

@yury-s
Copy link
Member

yury-s commented Aug 31, 2022

This is a part of playwright test runner in node.js world. The test runner manages the screenshot files and directories, generating names for them etc. We can expose the image matching functions but JUnit/TestNG don't have built in support for managing test artifacts and we don't have our own runner in Java. Do you think that having something like assertThat(page).hasScreenshot(path) would be sufficient?

@kabhinav26
Copy link
Author

In our framework we are using listeners to capture screenshots and manage file names, so it would be good to have atleast the functionality already present in node.js version.

From documentation i see there are assertions involving pixel threshold and content.

await expect(page).toHaveScreenshot({ maxDiffPixels: 100 });
expect(await page.textContent('.hero__title')).toMatchSnapshot('hero.txt');

@kabhinav26
Copy link
Author

Selenium has ashot library which supports visual testing on below parameters:

comparison of screenshots of pages;
comparing screenshots of pages + ignoring specified elements (dynamic content, etc.);
comparison of screenshots of elements;
breakpoints – you can compare screenshots of pages or elements with different widths. The default is 3 breakpoints – 1920px, 768px, 360px;
auto-generation of expected screenshots;
you can write tests as ordinary functional automation tests, there are no restrictions – this is important because sometimes it may be necessary to perform some complex actions before taking a screenshot.

@tsachi368
Copy link

@yury-s
Could the following features be added?
We would appreciate it if you could add them.

assertThat(page).hasScreenshot(path)

@NikkTod
Copy link

NikkTod commented Jan 8, 2023

Hello @yury-s - assertThat(page).hasScreenshot(path) would be great feature to have, exposing the image matching functions is the important thing here.

Is there any timeline for that feature to be developed? :)

@Tahanima
Copy link

Hi @yury-s,
assertThat(page).hasScreenshot(path) should suffice for our framework's needs. Eagerly waiting for this feature.

@morepe
Copy link

morepe commented Mar 3, 2023

Also giving it a star. Would be really good to have this also in java.

@mcturtle987
Copy link

We would really need this. We would like to avoid having java and nodejs separate modules just because this feature is not available in java atm.

@abuze-tecovin
Copy link

Would also love to see this in Java

@flxtcha
Copy link

flxtcha commented Nov 8, 2023

Would love to see this feature!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants