TLDR; Updated code for Selenium WebDriver Course for WebDriver v4 free online and released Open Source Profile conference video for free.
Selenium WebDriver Code Updates
When I removed my Selenium WebDriver course for sale and made it available to Patreon supporters only this was because I didn’t really have time to update the videos.
I have however, been updating the source code.
The full code for the course has been updated to:
The code now uses the styled pages at testpages.herokuapp.com
Selenium WebDriver Test Pages Updated
Additionally I’ve updated the Test Pages themselves.
The old unstyled pages have been deprecated and are less obvious on the page. And I fixed up a few minor bugs on some of the pages.
Selenium WebDriver Test Pages Running Locally on Docker
I’ve also added config to allow the test pages to be run via docker.
After cloning the repo or downloading via zip from github.com/eviltester/TestingApp
From the ‘\java’ directory run:
mvn package
Then:
docker build -t seleniumtestpages \
-f ./docker/selenium-test-pages/Dockerfile .
Then:
docker run -p 4567:4567 seleniumtestpages
This will make the test pages app accessible on localhost:4567
Open Source Profile Talk
I noticed that the talk I created for the Open Quality Conference in 2020 was no longer available anywhere online.
Full details about the talk are here:
The page above contains:
- talk outline
- blurb
- extra information
I have now released that to YouTube.
It had previously been released to Patreon supporters ad-free and with a full transcript, back in 2020.
This has also been added to the Patreon Exclusive Online Course “Get Your Message Out - Blogging”
The slides are available on Github in the EvilTester Talks repo.
https://github.com/eviltester/eviltester-talks
I’m in the process of combining a bunch of repos and removing older repos. I’m also hunting around my hard drive to see what I haven’t released and makings sure I have enough top level repos to cover the content.
Combined Github Repos
I’m in the process of combining a lot of smaller disparate repos into high level repos to cut down on the number of repos I have to review and maintain and hopefully make the content more discoverable.
I’ve pulled together 20 or so repos into a WebDriver Compendium repo:
github.com/eviltester/seleniumWebDriverCompendium
This contains smaller example repos and experiments.
It also contains the Automation Abstractions repo which was the precursor to my Linkedin Course on Page Objects. Advanced Selenium: Page Objects and GUI Automation
The full source is available, as are the slides for the associated one day workshop.
I’m still working through this repo to tidy and update the code, and as I do so I’ll remove the earlier duplicated repos.
Updated Getting Started Repos
I’ve updated the “Getting Started with” repos.
JUnit:
WebDriver with Java:
Removing Travis-CI and Running WebDriver via Github Actions
I’ve been meaning to migrate all the repos from Travis-CI to Github Actions since Travis-CI stopped offering free CI Builds for open source.
I’ve only now started upgrading.
The JUnit repos and WebDriver 4 repos all use Github Actions to run the tests on push and via cron job.
The new Selenium WebDriver 4 Browser Manager, makes running headless tests in CI much easier.
- see Introducing Selenium Manager on the official Selenium.dev site
e.g. the build.yml for my Selenium WebDriver 4 course code is very simple:
name: build
on:
push:
workflow_dispatch:
schedule:
- cron: '0 1 * * 6' # weekly check that it still works
env:
BROWSER_STATE: Headless
jobs:
compile-and-test-webdriver-4:
runs-on: ubuntu-latest
steps:
# https://github.com/actions/checkout
- name: Download repository
uses: actions/checkout@v3
# https://github.com/actions/setup-java
- name: Set up JDK 18
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 18
- name: setup chrome
uses: browser-actions/setup-chrome@v1
- run: chrome --version
- name: Test with Maven using Chrome
working-directory: ./code/selenium_4/code
run: mvn test -Dselenium2basics.webdriver=CHROME
This has:
push:
to run the tests on push to the repo,workflow_dispatch:
to allow me to manually trigger the execution from Github UIschedule:
to run the jobs on a cron timed basis every week on Saturday
Notice that there is no setup of ChromeDriver because the in-built Selenium Browser Manager is taking care of that step for me.