{"id":20617978,"url":"https://github.com/applitools/workshop-cbt-selenium-java","last_synced_at":"2025-10-09T17:38:19.982Z","repository":{"id":38057078,"uuid":"441232052","full_name":"applitools/workshop-cbt-selenium-java","owner":"applitools","description":"Workshop: Modern Cross-Browser Testing with Selenium WebDriver in Java","archived":false,"fork":false,"pushed_at":"2022-08-16T16:51:46.000Z","size":13423,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-10T10:50:55.566Z","etag":null,"topics":["applitools","cross-browser-testing","java","selenium","selenium-webdriver","testing","visual-ai","visual-testing","webdriver"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/applitools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-23T16:08:44.000Z","updated_at":"2023-01-26T09:34:00.000Z","dependencies_parsed_at":"2022-08-18T15:12:17.166Z","dependency_job_id":null,"html_url":"https://github.com/applitools/workshop-cbt-selenium-java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/applitools/workshop-cbt-selenium-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applitools%2Fworkshop-cbt-selenium-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applitools%2Fworkshop-cbt-selenium-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applitools%2Fworkshop-cbt-selenium-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applitools%2Fworkshop-cbt-selenium-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/applitools","download_url":"https://codeload.github.com/applitools/workshop-cbt-selenium-java/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applitools%2Fworkshop-cbt-selenium-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001868,"owners_count":26083197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["applitools","cross-browser-testing","java","selenium","selenium-webdriver","testing","visual-ai","visual-testing","webdriver"],"created_at":"2024-11-16T12:06:42.287Z","updated_at":"2025-10-09T17:38:19.966Z","avatar_url":"https://github.com/applitools.png","language":"Java","readme":"![Modern Cross-Browser Testing Workshop](images/modern-cbt-banner.png)\n\n# Modern Cross-Browser Testing with Selenium in Java\n\nThis repository contains the example code for the\n[Modern Cross-Browser Testing](https://applitools.com/crossbrowser-testing-workshop/) workshop\nled by [Pandy Knight](https://twitter.com/AutomationPanda)\nand hosted by [Applitools](https://applitools.com/).\n\nFull instructions for the workshop are provided in [`WORKSHOP.md`](WORKSHOP.md).\n\n\n## Abstract\n\nTesting web apps in 2022 is *still* a hard problem.\nApps are more complex than ever,\nand their pages must be validated against an exploding number of combinations of browsers, devices, and versions –\nan industry average of 81,480 screens to 681,296 for the top 33%.\n\nOld-school tools like Selenium WebDriver still get the job done today,\nbut old-school techniques for making assertions and running tests across different browsers can't keep up.\nWhy? They are inherently *sloooooooooow*:\nSlow to develop, slow to execute, and slow to maintain.\nIt's time to rethink how we automate web UI tests at scale for true Continuous Testing.\n\nIn this 1-hour workshop,\nPandy Knight, the [Automation Panda](https://automationpanda.com/),\nwill explain how to create ultrafast automated cross-browser tests\nusing Applitools Eyes with Selenium WebDriver in Java,\nand how to integrate them into CI/CD to provide feedback on quality across all browser/device combinations in seconds.\n\n\n**Highlights:**\n\n* The importance and evolution of cross browser testing\n* Critical requirements for a scalable cross browser testing initiative and pros/cons of different approaches\n* Implementing a modern cross browser solution using Applitools Eyes with Selenium WebDriver in Java\n* Accelerating test automation with integration into CI/CD to achieve Continuous Testing\n\n\n## Outline\n\n1. Traditional cross-browser testing\n   1. Writing a typical login test\n   2. Running the test locally\n   3. Updating the test to handle multiple browsers\n   4. Scaling out cross-browser testing yourself\n   5. Scaling out cross-browser testing as a service\n2. Modern cross-browser testing\n   1. Reconsidering what should be tested\n   2. Introducing Applitools Ultrafast Grid\n   3. Rewriting login as a visual test\n   4. Running visual tests across multiple browsers\n   5. Integrating modern cross-browser testing with CI/CD\n\n\n## Prerequisites\n\nTo complete this workshop, you will need:\n\n1. An Applitools account\n   (register [here](https://auth.applitools.com/users/register) for free)\n2. [Java Development Kit](https://www.oracle.com/java/technologies/downloads/) (JDK) 17 \n3. A Java IDE like [IntelliJ IDEA](https://www.jetbrains.com/idea/)\n4. [Google Chrome](https://www.google.com/chrome/)\n   * The up-to-date version of the browser\n   * The matching version of [ChromeDriver](https://chromedriver.chromium.org/) installed on system path\n5. [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/)\n   * The up-to-date version of the browser\n   * The matching version of [geckodriver](https://github.com/mozilla/geckodriver/releases) installed on the system path\n\n\n## Architecture\n\nThis project is a small Java test automation project\ncontaining [JUnit 5](https://junit.org/junit5/) test cases\nfor an [Applitools demo site](https://demo.applitools.com).\nIt uses [Selenium WebDriver](https://www.selenium.dev/documentation/webdriver/) for browser interactions\nand [Apache Maven](https://search.maven.org/) for dependency management.\nEach test case covers the same login behavior, but they do so in different ways:\n\n1. `TraditionalTest` covers login using traditional assertions on a local machine.\n2. `UltrafastVisualTest` covers login using Visual AI with [Applitools Eyes](https://applitools.com/products-eyes/)\n   and [Ultrafast Grid](https://applitools.com/product-ultrafast-test-cloud/).\n\n\n## Running tests\n\nThe easiest way to run the tests is one at a time through an IDE.\nAlternatively, you can run the tests from the command line with Maven using the `mvn test` command.\n\n`TraditionalTest` runs WebDriver sessions on the local machine.\nEach test launch can target either Google Chrome or Mozilla Firefox.\nSet the `BROWSER` environment variable to `chrome` or `firefox` to choose the browser.\n\n`UltrafastVisualTest` runs one WebDriver session on the local machine with Applitools Eyes.\nThen, it sends snapshots of pages to Applitools Ultrafast Grid to visually test across seven unique configurations.\nTo connect to the Applitools cloud,\nyou must set the `APPLITOOLS_API_KEY` environment variable to your Applitools API key.\n\nBoth tests can cover the \"original\" state of the demo site as well as a visually \"changed\" state.\nSet the `DEMO_SITE` environment variable to `original` or `changed` to pick the target site.\n`TraditionalTest` should pass for both versions of the site.\n`UltrafastVisualTest` should detect visual differences.\nRun it first with `DEMO_SITE=original` to set a baseline,\nand then run it with `DEMO_SITE=changed` to reveal the differences.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapplitools%2Fworkshop-cbt-selenium-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapplitools%2Fworkshop-cbt-selenium-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapplitools%2Fworkshop-cbt-selenium-java/lists"}