Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
636 commits
Select commit Hold shift + click to select a range
998dda0
Release notes for 6.4.0
emanlove May 22, 2024
30a62e5
Updated version to 6.4.0
emanlove May 22, 2024
e817786
Generated docs for version 6.4.0
emanlove May 22, 2024
61ce97a
Specify supported Python version
jeromehuewe May 23, 2024
e0a8c62
Merge pull request #1903 from jeromehuewe/patch-1
emanlove May 23, 2024
fdbfe48
Create entry and print version
aaltat May 7, 2024
f4e7486
Add unit test
aaltat May 7, 2024
2d7c01f
Entry point to create and compare translation
aaltat May 9, 2024
f793715
Cope pasted code from Browser library
aaltat May 11, 2024
eff39f1
Fix unit tests
aaltat May 11, 2024
967849f
Add translation testing
aaltat May 18, 2024
2d7a66f
Better support for Pytest in vscode
aaltat May 18, 2024
a520e8a
Fix tests
aaltat May 18, 2024
22da903
Lint fixes
aaltat May 18, 2024
92222e3
add entry point definition
aaltat May 18, 2024
b0a848d
Remove dead code
aaltat May 18, 2024
ee5a7de
Reduced tested against selenium versions to latest two
emanlove Jun 9, 2024
489f103
Reworded some documentation on selib tool
emanlove Jun 9, 2024
23d8514
Fixed couple checks on expected log messages under atest
emanlove Jun 9, 2024
0a1eeae
Fixed a couple of expected results under utests
emanlove Jun 9, 2024
51a69db
Resolved log checks with some atests
emanlove Jun 9, 2024
8c62b70
Minor doc change for translations
emanlove Jun 10, 2024
7718076
Merge pull request #1907 from emanlove/translation-documentation
emanlove Jun 10, 2024
0e7e66d
Release notes for 6.5.0rc1
emanlove Jun 11, 2024
eefb1ca
Updated version to 6.5.0rc1
emanlove Jun 11, 2024
d60b826
Generate stub file for 6.5.0rc1
emanlove Jun 11, 2024
11a07ce
Generated docs for version 6.5.0rc1
emanlove Jun 11, 2024
ffd78ec
Regenerated project docs
emanlove Jun 11, 2024
0c19d3c
Fix translation cmd
aaltat Jun 12, 2024
6a62026
Add test for entry point
aaltat Jun 13, 2024
e647487
Corrected spellings of argument
emanlove Jun 15, 2024
7427b3a
Merge pull request #1911 from emanlove/translation-documentation
emanlove Jun 15, 2024
8ef1926
Release notes for 6.5.0
emanlove Jun 15, 2024
a305413
Updated version to 6.5.0
emanlove Jun 15, 2024
f9cd72a
Generate stub file for 6.5.0
emanlove Jun 15, 2024
00ac2cd
Generated docs for version 6.5.0
emanlove Jun 15, 2024
f74ea79
Regenerated project docs
emanlove Jun 15, 2024
e8c1649
Remove unneeded 'send_' in docs
iarmhi Jul 29, 2024
c52437b
Initial Python 3.12 support
emanlove Sep 5, 2024
f263368
Triage atest
emanlove Sep 5, 2024
f3f4111
Updated tested against Robot Framework versions
emanlove Sep 5, 2024
ff8cfb6
Updated setup.py with 3.12 support
emanlove Sep 5, 2024
305b8f6
Updated Selenium Python versions to latest
emanlove Sep 5, 2024
948332a
Updated the "Install drivers via selenium-manager" CI step
emanlove Sep 5, 2024
c107110
Merge pull request #1916 from emanlove/python-3_12
emanlove Sep 6, 2024
27450d9
Release notes for 6.6.0
emanlove Sep 6, 2024
acd2b10
Updated version to 6.6.0
emanlove Sep 6, 2024
70139f3
Generate stub file for 6.6.0
emanlove Sep 6, 2024
80e6101
Generated docs for version 6.6.0
emanlove Sep 6, 2024
a72ce46
Regenerated project docs
emanlove Sep 6, 2024
7bc7943
Corrected upper bound on Python versions
emanlove Sep 6, 2024
f8e9fb1
Release notes for 6.6.1
emanlove Sep 6, 2024
c2db5a6
Updated version to 6.6.1
emanlove Sep 6, 2024
570d07b
Generate stub file for 6.6.1
emanlove Sep 6, 2024
c55cb9c
Generated docs for version 6.6.1
emanlove Sep 6, 2024
b5986f4
Enhance transtion to discover multiple translation from same Python p…
aaltat Sep 8, 2024
db12e58
Update future cookie a year out (into 2025)
emanlove Sep 28, 2024
473f925
Updated test matrix to latest version for Python, Robot Framework, an…
emanlove Sep 28, 2024
038af54
Update the rerequirements
TheGreatSimo Aug 10, 2023
417684c
Use Dependabot to update deps automatically
aaltat Sep 28, 2024
121ed12
actions/upload-artifact@v3
aaltat Sep 28, 2024
5780c75
Update to acttions/update-artifacts@v3
emanlove Sep 28, 2024
b077cf2
Corrected Python 3.13 version
emanlove Sep 28, 2024
2eef15c
Update elementfinder.py
markus-leben Oct 7, 2024
bb0868e
Merge pull request #1913 from vs-sap/patch-1
emanlove Oct 8, 2024
8fbabb8
Updated Python, Robot Framework and Selenium versions
emanlove Nov 1, 2024
c508836
Updated October expired cookies
emanlove Nov 1, 2024
9b58690
Merge branch 'latest-versions-sept2024' into latest-versions-oct2024
emanlove Nov 1, 2024
5244c95
Fixed syntax within Selenium versions matrix
emanlove Nov 1, 2024
aaf8674
Merge pull request #1925 from emanlove/latest-versions-oct2024
emanlove Nov 1, 2024
f21bc11
Merge remote-tracking branch 'markus-leben/master' into fix-find-by-d…
emanlove Nov 2, 2024
96fa446
Merge pull request #1924 from markus-leben/master
emanlove Nov 2, 2024
09bbd7f
Added unit tests for #1924
emanlove Nov 2, 2024
1d6aa86
Merge pull request #1926 from emanlove/fix-find-by-data-locator-#1924
emanlove Nov 2, 2024
7c28588
Updated versions of selenium tested against
emanlove Dec 29, 2024
01967a3
Updated supported Python versions to include Python 3.13
emanlove Dec 29, 2024
dd20fa2
Merge pull request #1928 from emanlove/latest-versions-dec2024
emanlove Dec 29, 2024
0bed959
Release notes for 6.7.0rc1
emanlove Dec 29, 2024
a1b3871
Updated version to 6.7.0rc1
emanlove Dec 29, 2024
1a91853
Generate stub file for 6.7.0rc1
emanlove Dec 29, 2024
2897111
Generated docs for version 6.7.0rc1
emanlove Dec 29, 2024
0c99a6d
Regenerated project docs
emanlove Dec 29, 2024
3fec008
Release notes for 6.7.0
emanlove Jan 6, 2025
af36f39
Updated version to 6.7.0
emanlove Jan 6, 2025
68b8149
Generated docs for version 6.7.0
emanlove Jan 6, 2025
f883bdd
Removed verbose argument from robotstatuschecker
emanlove Feb 23, 2025
d1b21d3
Relaxed click version requirement
emanlove Feb 23, 2025
fbd15da
Updated older RETURN syntax to newer one
emanlove Feb 23, 2025
33bd5ef
Quick update to upload-artifacts v4
emanlove Feb 23, 2025
6e95f25
Merge pull request #1931 from emanlove/downgrade-click-version
emanlove Feb 27, 2025
a687440
Release notes for 6.7.1
emanlove Feb 27, 2025
7af16ce
Updated version to 6.7.1
emanlove Feb 27, 2025
bbb50d5
Generated docs for version 6.7.1
emanlove Feb 27, 2025
15ce096
Update README.rst 'Browser drivers' section
cgoldberg May 23, 2025
f9e9792
Merge pull request #1938 from cgoldberg/readme-browser-drivers
emanlove May 23, 2025
1a6a2ba
Initial commit of screenshot return base64 string
emanlove May 24, 2025
0f5cf9c
Updated tests and fixed a couple issues
emanlove May 24, 2025
c87bb45
Added BASE64 to set screenshot directory keyword
emanlove May 25, 2025
b16e05e
Added unit tests to check for BASE64 and proper handling
emanlove May 25, 2025
a8e8234
Resolved issue with setting BASE64 on library initialization
emanlove May 26, 2025
6858c22
Added keyword documentation for BASE64 option for screenshots
emanlove May 26, 2025
7c04d02
Updating selenium and robotframework versions we test against
emanlove Jun 15, 2025
42399b6
Fixed required version syntax
emanlove Jun 15, 2025
0f550e0
Bump lower Python version tested to 3.9
emanlove Jun 15, 2025
33135cf
Updated expected error messages on a couple tests
emanlove Jun 18, 2025
38e784d
Trying out key value pairs on python version for more expressive matrix
emanlove Jun 18, 2025
3f135fb
Limit test matrix to latest python version and latest rf version
emanlove Jun 18, 2025
b54e4ba
Uniquely name the artifacts
emanlove Jun 18, 2025
4f94745
Try slight delay in mouse over test
emanlove Jun 18, 2025
46351bf
Try slight delay in mouse over error test
emanlove Jun 18, 2025
30df944
Try slowing down tests a bit
emanlove Jun 19, 2025
6780fbb
Trying RF verion 7.2.2
emanlove Jun 19, 2025
86ac810
Put back in previous selenium versions
emanlove Jun 19, 2025
f493acb
Added install chromedriver along side of chrome
emanlove Jun 19, 2025
52faa86
Trying Chrome version 138
emanlove Jun 19, 2025
db74c43
Trying chrome version 137 ..
emanlove Jun 19, 2025
eeec4b5
Turn off Chrome password leak detector
emanlove Aug 3, 2025
8c9307b
Tweak some timing on the alert tests
emanlove Aug 3, 2025
a8468c2
Trying to get v138 chromedriver ..
emanlove Aug 3, 2025
467edb7
Expanding out the version text matrix verifying we are still good acr…
emanlove Aug 3, 2025
b1dd105
Add latest selenium version 4.34.2 into test matrix
emanlove Aug 3, 2025
573b36d
Removed sleep and extended expected timeout.
emanlove Aug 3, 2025
1458cbe
Merge pull request #1944 from emanlove/latest-versions-jun2025
emanlove Aug 3, 2025
29237fd
Merge branch 'master' into embed-screenshot-with-base64
emanlove Aug 3, 2025
5a9000a
Merge pull request #1939 from emanlove/embed-screenshot-with-base64
emanlove Aug 3, 2025
3c8ffe3
Corrected expected plugin doc with changes to screenshot embed
emanlove Aug 3, 2025
e361743
Removed and replaced deprecated is_string method
emanlove Aug 3, 2025
2eca943
Merge pull request #1945 from emanlove/remove-deprecated-is_string
emanlove Aug 4, 2025
fabb5d2
Fix typo in deprecation message
antivirak Sep 8, 2025
6fe002a
Allow python version 3.14
emanlove Oct 4, 2025
e04bc33
Merge pull request #1950 from emanlove/allow-python-3.14
emanlove Oct 4, 2025
1b9cc1e
Release notes for 6.8.0
emanlove Oct 4, 2025
d2551fb
Updated version to 6.8.0
emanlove Oct 4, 2025
de2a7ce
Generated docs for version 6.8.0
emanlove Oct 4, 2025
c5c21ea
Regenerated project docs
emanlove Oct 4, 2025
e480b5d
Creating new GA workflow
emanlove Jan 18, 2026
1bc10b1
Fixed browser variable
emanlove Jan 18, 2026
01e2001
Made a few changes to the select ci workflow
emanlove Jan 18, 2026
9da83d3
Removed install drivers step ..
emanlove Jan 18, 2026
8577018
Removed install chromedriver flag on setup chrome
emanlove Jan 18, 2026
d43c0fb
Yearly update of cookies
emanlove Jan 18, 2026
36b553a
Update couple more cookie tests for the new year
emanlove Jan 19, 2026
de6932f
Update GitHub Action Workflows
emanlove Jan 19, 2026
a868f70
Merge pull request #1955 from emanlove/master
emanlove Jan 19, 2026
5703ea9
Switching dependebot to monthly
emanlove Jan 19, 2026
808c9f5
Merge branch 'master' into dependabot
emanlove Jan 19, 2026
a364f8e
Merge pull request #1956 from emanlove/dependabot
emanlove Jan 19, 2026
42cfd69
Bump actions/checkout from 4 to 6
dependabot[bot] Jan 19, 2026
c218ae6
Bump browser-actions/setup-chrome from 1 to 2
dependabot[bot] Jan 19, 2026
7dc817f
Bump actions/setup-python from 5 to 6
dependabot[bot] Jan 19, 2026
ce9d0ec
Merge pull request #1947 from antivirak/patch-1
emanlove Jan 19, 2026
00f7f17
Adding the type annotation for the cascading locators to keywords
emanlove Jan 19, 2026
22b9dd2
Additional changes for cascading locators
emanlove Jan 19, 2026
9f5b9c7
Minor spelling correction
emanlove Jan 19, 2026
179d62b
Bump actions/upload-artifact from 4 to 7
dependabot[bot] Mar 1, 2026
4a8d2b8
Add 'Get CSS Property Value' keyword with tests
b-vamsipunnam Mar 29, 2026
17b2eab
Fixed doc formating issue within xpath examples
emanlove Apr 5, 2026
700eaa6
Switched locator type over to TypeAlias
emanlove Apr 5, 2026
87c1963
Set minimum Python version to 3.10
emanlove Apr 5, 2026
d4c141d
Fixed expected output on test after recent spelling correction change
emanlove Apr 6, 2026
f2d924a
Added missing import for new Locator type
emanlove Apr 6, 2026
5c113c6
Corrected expiry time on far_future cookie
emanlove Apr 6, 2026
822a862
(Temporarily) Fixed issue with Get Cookies test
emanlove Apr 6, 2026
3139960
Added regex to handle any order on cookies
emanlove Apr 6, 2026
423ebb8
Merge pull request #1971 from robotframework/fix-doc-formating-issues
emanlove Apr 6, 2026
8c0ae7e
Cleaned up type for arguments where could be Locator or None
emanlove Apr 6, 2026
baba970
Cleaned up imports removing unused List, Union, and WebElement
emanlove Apr 6, 2026
54ba867
Update cookie validation regex in Get Cookies test
yuriverweij Apr 7, 2026
d834e31
Fix deprecation warnings in unit tests and improve logging for approv…
yuriverweij Apr 7, 2026
10a27b8
Fix formatting issues in locator examples in PluginDocumentation
yuriverweij Apr 7, 2026
dc16969
Fix formatting issue in locator list creation in SeleniumLibrary
yuriverweij Apr 7, 2026
2914d91
Add test for non-existent CSS property as requested by reviewer
b-vamsipunnam Apr 7, 2026
8ef4b25
Updated expected results on plugin documentation (with xpath example …
emanlove Apr 8, 2026
eea629c
Merge pull request #1973 from yuriverweij/bugfix/get-cookies-atest
emanlove Apr 8, 2026
fa186e5
Merge branch 'master' into fix/unittest-fix-deprecation-and-improve-l…
emanlove Apr 8, 2026
02b7378
Merge pull request #1974 from yuriverweij/fix/unittest-fix-deprecatio…
emanlove Apr 8, 2026
b74848e
Merge branch 'master' into 1962-add-locator-type
emanlove Apr 8, 2026
2141caf
Merge pull request #1972 from emanlove/1962-add-locator-type
emanlove Apr 8, 2026
8f0077b
Pin development dependencies to specific versions
yuriverweij Apr 9, 2026
07f2c87
Update GitHub Actions to use latest versions
yuriverweij Apr 9, 2026
7abeee8
Replace ensureNoUnverifiedInteractions with verifyNoUnwantedInteractions
yuriverweij Apr 9, 2026
f7aa505
Merge branch 'master' into add-get-css-property-value-keyword
b-vamsipunnam Apr 10, 2026
8290239
Use Locator type for Get CSS Property Value keyword
b-vamsipunnam Apr 10, 2026
57be117
Merge pull request #1969 from b-vamsipunnam/add-get-css-property-valu…
emanlove Apr 10, 2026
bf869a0
Add Drag And Drop To Frame keyword Updated implementation and tests
b-vamsipunnam Apr 11, 2026
fb7faa4
Fix acceptance tests for CI run - Drag And Drop To Frame keyword
b-vamsipunnam Apr 11, 2026
d7202a2
Merge pull request #1975 from yuriverweij/chore/update-dependencies
yuriverweij Apr 13, 2026
3cf3262
Migrate from flake8 to Ruff for linting and formatting; update Python…
yuriverweij Apr 13, 2026
50a953a
Fixed broken links within Open Browser keyword
emanlove Apr 25, 2026
97dc103
Replaced other reference links to Selenium Python API
emanlove Apr 25, 2026
a401b04
Refactor and optimize code across multiple modules
yuriverweij Apr 25, 2026
9538508
Add early return in wait_until_location_is for improved flow control
yuriverweij Apr 25, 2026
3f6871d
Improve cross-frame drag and drop reliability and tests
b-vamsipunnam Apr 26, 2026
b76a3d9
Update docstring to clarify default content reset after execution
b-vamsipunnam Apr 26, 2026
a6e6f62
Refactor tests to use pytest and improve error handling
yuriverweij Apr 26, 2026
b68eb40
Update linting configuration and remove unnecessary skip conditions f…
yuriverweij Apr 26, 2026
d49a0c3
Add new test configuration for Firefox
yuriverweij Apr 26, 2026
e234c34
Fix variable interpolation in artifact name for better clarity
yuriverweij Apr 26, 2026
b33a8f1
Update linting and formatting workflows with new actions versions
yuriverweij Apr 26, 2026
b8a0d3e
Enhance browser opening logic to handle different browser names and p…
yuriverweij Apr 26, 2026
984d2a3
ruff format fixes
yuriverweij Apr 26, 2026
c3cad3f
Mouse Over error Firefox known issue
yuriverweij Apr 26, 2026
0261814
Update Ruff format check to include 'atest/' directory for comprehens…
yuriverweij Apr 26, 2026
da2f1b8
Update linting and formatting setup to use latest actions and enhance…
yuriverweij Apr 26, 2026
4de91cb
Simplify test fixture and refine test coverage
b-vamsipunnam Apr 26, 2026
ff15d01
Fixed unit tests with new Selenium API urls
emanlove Apr 26, 2026
4820c97
Merge pull request #1977 from emanlove/1976-fix-links-in-open-broswer…
emanlove Apr 26, 2026
cba5fd1
Merge pull request #1967 from robotframework/dependabot/github_action…
emanlove Apr 26, 2026
b8c1c5f
Add SKIP_ON_WINDOWS tag to relevant test cases and update run.py to e…
yuriverweij Apr 26, 2026
25da5f2
removed whitespace
yuriverweij Apr 26, 2026
6bec53f
fixes for copilot review comments.
yuriverweij Apr 26, 2026
1ab8845
fix: correct command for Ruff format check in workflow
yuriverweij Apr 26, 2026
57f3edf
chore: update Python, Robot Framework, and Selenium versions in CI wo…
yuriverweij Apr 26, 2026
068128b
fix: update Robot Framework version in CI and moved linting checks in…
yuriverweij Apr 26, 2026
4e638fb
fix: correct lint suppression comments
yuriverweij Apr 26, 2026
118cdd5
refactor: move Creator class definition inside creator function
yuriverweij Apr 26, 2026
185c7ae
Merge pull request #1958 from robotframework/dependabot/github_action…
yuriverweij Apr 28, 2026
d1ef949
Merge pull request #1959 from robotframework/dependabot/github_action…
yuriverweij Apr 28, 2026
14c8191
Merge pull request #1960 from robotframework/dependabot/github_action…
yuriverweij Apr 28, 2026
fe02589
feat: add support for Secret type in input handling and create helper…
yuriverweij May 4, 2026
847a32e
refactor: move browser_names to class variable and remove unused WIND…
yuriverweij May 4, 2026
7a135e2
Add PIE790 rule for unnecessary placeholder
yuriverweij May 5, 2026
707d468
undo removing placeholder in __main__.py, def_cli()
yuriverweij May 5, 2026
46de77c
refactor: rename classes to lowercase to adhere to RF syntax guidelines
yuriverweij May 5, 2026
975c1ba
adjust spacing
yuriverweij May 5, 2026
be8ba7b
refactor: rename plugins to lowercase to adhere to naming conventions
yuriverweij May 5, 2026
e495938
Merge pull request #1978 from yuriverweij/fix/update-linting-checking…
emanlove May 5, 2026
54584bc
Merge branch 'master' into feature/drag-and-drop-to-frame
emanlove May 5, 2026
858c25a
Merge pull request #1953 from b-vamsipunnam/feature/drag-and-drop-to-…
emanlove May 5, 2026
4c8a8b0
Merge branch 'master' of https://github.com/yuriverweij/SeleniumLibra…
yuriverweij May 5, 2026
42b0e6b
moved test back with other textfield tests. Fixed bug, not using valu…
yuriverweij May 6, 2026
be38514
fix formatting
yuriverweij May 6, 2026
e882cff
Merge pull request #1984 from yuriverweij/master
emanlove May 6, 2026
d35867b
Merge branch 'robotframework:master' into feature/add-secret-type
yuriverweij May 6, 2026
b2e8aed
Enhance password handling documentation for Secret type support in In…
yuriverweij May 6, 2026
c25e213
Remove secret_helper.py and update tests to exclude require-rf-7.4 fo…
yuriverweij May 6, 2026
56ca2af
Fix log line number in Input Password Does Not Log Secret Value test …
yuriverweij May 6, 2026
ac5afde
Refactor password logging behavior for input text to enhance security…
yuriverweij May 11, 2026
1cdf03f
Refactor Robot Framework version check to use regex for improved accu…
yuriverweij May 12, 2026
5bbfb6e
formatter change
yuriverweij May 12, 2026
53eb904
add 'Known Issue Firefox' tags to relevant test cases in draganddropf…
yuriverweij May 12, 2026
91700c4
Merge pull request #1987 from yuriverweij/known-issue-firefox-drag-an…
emanlove May 16, 2026
c23556e
Merge pull request #1985 from yuriverweij/feature/add-secret-type
emanlove May 16, 2026
8daa8b8
Bumping minimum Selenium version to 4.25.0
emanlove May 16, 2026
5b9fbc2
Updating Selenium versions within select GA workflow
emanlove May 16, 2026
af57c69
Merge pull request #1988 from emanlove/1986-set-minimum-selenium-version
emanlove May 16, 2026
af69f29
Release notes for 6.9.0
emanlove May 17, 2026
2391abc
Updated version to 6.9.0
emanlove May 17, 2026
8b0a8ba
Generated docs for version 6.9.0
emanlove May 17, 2026
3b35ef1
Forgot to add my thanks to petobarki recognize his request for the se…
emanlove May 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .flake8

This file was deleted.

1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.approved.txt text eol=lf
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
96 changes: 68 additions & 28 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,63 +1,103 @@
name: SeleniumLibrary CI

on: [push, pull_request]
on: workflow_dispatch

jobs:
build:

runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
python-version: [3.6, 3.9, pypy3]
rf-version: [3.2.2, 4.0.1]
python-version: [3.10.16, 3.13.5, 3.14.4, pypy-3.10]
# python-version: [{earliest: 3.10}, {latest: 3.14.0-rc.3}, {pypy: pypy-3.10}]
rf-version: [6.1.1, 7.4.2]
selenium-version: [4.29.0, 4.30.0, 4.31.0, 4.32.0, 4.33.0, 4.34.2, 4.43.0]
browser: [chrome] # firefox, chrome, headlesschrome, edge

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }} with Robot Framework ${{ matrix.rf-version }}
uses: actions/setup-python@v1
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Setup Chrome
uses: browser-actions/setup-chrome@v2
with:
chrome-version: 138
install-dependencies: true
install-chromedriver: true
id: setup-chrome
- run: |
echo Installed chromium version: ${{ steps.setup-chrome.outputs.chrome-version }}
${{ steps.setup-chrome.outputs.chrome-path }} --version
- name: Setup firefox
id: setup-firefox
uses: browser-actions/setup-firefox@v1
with:
firefox-version: latest
- run: |
echo Installed firefox versions: ${{ steps.setup-firefox.outputs.firefox-version }}
${{ steps.setup-firefox.outputs.firefox-path }} --version
- name: Start xvfb
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1280x1024x16 > /dev/null 2>&1 &
- name: Install dependencies
if: matrix.python-version != 'pypy3'
if: matrix.python-version != 'pypy-3.10'
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Install dependencies for pypy
if: matrix.python-version == 'pypy3'
if: matrix.python-version == 'pypy-3.10'
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install mockito>=1.0.0
pip install robotstatuschecker>=1.4
pip install approvaltests>=0.2.4
pip install pytest pytest-mockito pytest-approvaltests requests robotframework-pabot
pip install requests robotframework-pabot
- name: Install Seleninum v${{ matrix.selenium-version }}
run: |
pip install --upgrade selenium==${{ matrix.selenium-version }}
- name: Install RF ${{ matrix.rf-version }}
run: |
pip install -U --pre robotframework==${{ matrix.rf-version }}
- name: Install drivers via selenium-manager
run: |
SELENIUM_MANAGER_EXE=$(python -c 'from selenium.webdriver.common.selenium_manager import SeleniumManager; sm=SeleniumManager(); print(f"{str(sm._get_binary())}")')
echo "$SELENIUM_MANAGER_EXE"
echo "WEBDRIVERPATH=$($SELENIUM_MANAGER_EXE --browser chrome --debug | awk '/INFO[[:space:]]Driver path:/ {print $NF;exit}')" >> "$GITHUB_ENV"
echo "$WEBDRIVERPATH"
- name: Generate stub file for ${{ matrix.python-version }}
if: matrix.python-version != 'pypy3'
if: matrix.python-version != 'pypy-3.10'
run: |
invoke gen-stub
- name: Run tests with headless Chrome and with Python != 3.8
if: matrix.python-version != '3.8'
run: |
xvfb-run --auto-servernum python atest/run.py --zip headlesschrome
- name: Run tests normal Chrome with Python 3.8
if: matrix.python-version == '3.8' && matrix.rf-version != '3.2.2'
run: |
xvfb-run --auto-servernum python atest/run.py --zip chrome
- name: Run tests with Selenium Grid
if: matrix.python-version == '3.8' && matrix.rf-version == '3.2.2'
run: |
wget --no-verbose --output-document=./selenium-server-standalone.jar http://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
sudo chmod u+x ./selenium-server-standalone.jar
xvfb-run --auto-servernum python atest/run.py --zip headlesschrome --grid True
- uses: actions/upload-artifact@v1
if: success() || failure()

# Temporarily ignoring pypy execution
- name: Run tests with headless Chrome and with PyPy
if: startsWith( matrix.python-version, 'pypy') == true
run: |
xvfb-run --auto-servernum python atest/run.py --nounit --zip headlesschrome

# - name: Run tests with ${{ matrix.browser }} if CPython
# if: startsWith( matrix.python-version, 'pypy') == false
# run: |
# xvfb-run --auto-servernum python atest/run.py --zip ${{ matrix.browser }}

- name: Run tests with latest python and latest robot framework
if: matrix.python-version == '3.14.4' && matrix.rf-version == '7.4.1'
run: |
xvfb-run --auto-servernum python atest/run.py --zip ${{ matrix.browser }}

# - name: Run tests with Selenium Grid
# if: matrix.python-version == '3.11' && matrix.rf-version == '3.2.2' && matrix.python-version != 'pypy-3.10'
# run: |
# wget --no-verbose --output-document=./selenium-server-standalone.jar http://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
# sudo chmod u+x ./selenium-server-standalone.jar
# xvfb-run --auto-servernum python atest/run.py --zip headlesschrome --grid True

- uses: actions/upload-artifact@v7
if: failure()
with:
name: Failed Test results
name: sl_$${{ matrix.python-version }}_$${{ matrix.rf-version }}_$${{ matrix.selenium-version }}_$${{ matrix.browser }}
path: atest/zip_results
overwrite: true
119 changes: 119 additions & 0 deletions .github/workflows/Select.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Selected Test Configuration Matrix

on: [push, pull_request]

jobs:
test_config:
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
config:
- description: latest
python-version: 3.14.4
rf-version: 7.4.2
selenium-version: 4.44.0
browser: chrome
- description: previous
python-version: 3.12.12
rf-version: 7.3.2
selenium-version: 4.40.0
browser: chrome
- description: older_rf_version
python-version: 3.11.14
rf-version: 6.1.1
selenium-version: 4.37.0
browser: chrome
- description: latest_firefox
python-version: 3.14.4
rf-version: 7.4.1
selenium-version: 4.39.0
browser: firefox
steps:
- uses: actions/checkout@v6
- name: Configuration Description
run: |
echo "${{ matrix.config.description }} configuration"
echo "Testing with RF v${{ matrix.config.rf-version }}, Selenium v${{ matrix.config.selenium-version}}, Python v${{ matrix.config.python-version }} under ${{ matrix.config.browser }}"
- name: Set up Python ${{ matrix.config.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.config.python-version }}
- name: Setup ${{ matrix.config.browser }} browser
uses: browser-actions/setup-chrome@v2
with:
chrome-version: latest
install-dependencies: true
id: setup-chrome
- run: |
echo Installed chromium version: ${{ steps.setup-chrome.outputs.chrome-version }}
${{ steps.setup-chrome.outputs.chrome-path }} --version
- name: Setup firefox
id: setup-firefox
uses: browser-actions/setup-firefox@v1
with:
firefox-version: latest
- run: |
echo Installed firefox versions: ${{ steps.setup-firefox.outputs.firefox-version }}
${{ steps.setup-firefox.outputs.firefox-path }} --version
- name: Start xvfb
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1280x1024x16 > /dev/null 2>&1 &
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Install Seleninum v${{ matrix.config.selenium-version }}
run: |
pip install --upgrade selenium==${{ matrix.config.selenium-version }}
- name: Install RF ${{ matrix.config.rf-version }}
run: |
pip install -U --pre robotframework==${{ matrix.config.rf-version }}

- name: Run tests under specified config
run: |
xvfb-run --auto-servernum python atest/run.py --zip ${{ matrix.config.browser }}

- uses: actions/upload-artifact@v7
if: failure()
with:
name: sl_${{ matrix.config.python-version }}_${{ matrix.config.rf-version }}_${{ matrix.config.selenium-version }}_${{ matrix.config.browser }}
path: atest/zip_results
overwrite: true
ruff:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.14.4"

- name: Install dev dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt

- name: Ruff format check
id: format
continue-on-error: true
run: |
python -m invoke formatter --check

- name: Ruff lint
id: lint
continue-on-error: true
run: |
python -m invoke lint

- name: Fail if any Ruff step failed
if: always()
run: |
echo "format outcome: ${{ steps.format.outcome }}"
echo "lint outcome: ${{ steps.lint.outcome }}"
if [ "${{ steps.format.outcome }}" != "success" ] || [ "${{ steps.lint.outcome }}" != "success" ]; then
exit 1
fi
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.project
.pydevproject
.idea
.vscode
atest/results
atest/zip_results
utest/output_dir
Expand All @@ -10,7 +11,7 @@ utest/output_dir
MANIFEST
*.egg-info
*.egg
chromedriver.log
*driver.log
.pytest_cache

dist
Expand Down
21 changes: 13 additions & 8 deletions BUILD.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ Testing
-------

Make sure that adequate tests are executed before releases are created.
See `<test/README.rst>`_ for details.
For more information about unit tests see `<utest/README.rst>`_ or for
acceptance tests see `<atest/README.rst>`_.

Preparation
-----------
Expand Down Expand Up @@ -164,22 +165,25 @@ Generate Stub file

Documentation
-------------
If generating release candidate or final release documentation, use `invoke kw-docs`
but if this alpha or beta release, use `invoke kw-docs $VERSION`. The `invoke kw-docs $VERSION`
If generating release candidate or final release documentation, use ``invoke kw-docs```
but if this alpha or beta release, use ``invoke kw-docs $VERSION``. The ``invoke kw-docs $VERSION``
does not replace the previous final release documentation, instead it will create new file
with docs/SeleniumLibrary-$VERSION.html. From the below, execute either 1.1 or 1.2 step. The step
with docs/SeleniumLibrary-$VERSION.html. From the below, execute either 1.A or 1.B step. The step
2. is done always.

Note that this *must* be done after`setting version <Set version>`_ above
Note that this *must* be done after `setting version <Set version>`_ above
or docs will have wrong version number.

1.1. Generate pre or final release keyword documentation::
1.
A. Generate *pre or final release* keyword documentation::

invoke kw-docs
git commit -m "Generated docs for version $VERSION" docs/SeleniumLibrary.html
git push

1.2 Generate alpha or beta release keyword documentation::
**OR**

B. Generate *alpha or beta release* keyword documentation::

invoke kw-docs -v $VERSION
git add docs/SeleniumLibrary-$VERSION.html
Expand All @@ -192,7 +196,8 @@ push the new README.rst::
git commit -m "Add alpha/beta kw docs for version $VERSION in README.rst" README.rst
git push

2. If README.rst has changed, generate project documentation based on it::
2. If README.rst has changed, generate project documentation based on it. One can check with
the command ``git log <previousversiontag>..HEAD --oneline README.rst``::

invoke project-docs
git commit -m "Regenerated project docs" docs/index.html
Expand Down
Loading