seleniumbase 4.30.8__py3-none-any.whl → 4.31.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. sbase/__init__.py +1 -0
  2. seleniumbase/__init__.py +2 -3
  3. seleniumbase/__version__.py +1 -1
  4. seleniumbase/behave/behave_sb.py +59 -11
  5. seleniumbase/config/settings.py +4 -0
  6. seleniumbase/console_scripts/logo_helper.py +47 -0
  7. seleniumbase/console_scripts/run.py +7 -4
  8. seleniumbase/console_scripts/sb_behave_gui.py +5 -5
  9. seleniumbase/console_scripts/sb_caseplans.py +6 -6
  10. seleniumbase/console_scripts/sb_commander.py +5 -5
  11. seleniumbase/console_scripts/sb_install.py +10 -2
  12. seleniumbase/console_scripts/sb_recorder.py +4 -4
  13. seleniumbase/core/browser_launcher.py +179 -108
  14. seleniumbase/core/mysql.py +1 -4
  15. seleniumbase/core/recorder_helper.py +24 -5
  16. seleniumbase/core/sb_driver.py +13 -3
  17. seleniumbase/core/settings_parser.py +4 -0
  18. seleniumbase/fixtures/base_case.py +324 -493
  19. seleniumbase/fixtures/js_utils.py +19 -52
  20. seleniumbase/fixtures/page_actions.py +3 -6
  21. seleniumbase/fixtures/page_utils.py +18 -53
  22. seleniumbase/plugins/base_plugin.py +2 -3
  23. seleniumbase/plugins/driver_manager.py +182 -5
  24. seleniumbase/plugins/pytest_plugin.py +51 -23
  25. seleniumbase/plugins/sb_manager.py +185 -5
  26. seleniumbase/plugins/selenium_plugin.py +71 -8
  27. seleniumbase/undetected/__init__.py +13 -38
  28. seleniumbase/undetected/dprocess.py +4 -6
  29. seleniumbase/undetected/options.py +3 -6
  30. seleniumbase/undetected/patcher.py +2 -3
  31. {seleniumbase-4.30.8.dist-info → seleniumbase-4.31.1.dist-info}/METADATA +111 -125
  32. {seleniumbase-4.30.8.dist-info → seleniumbase-4.31.1.dist-info}/RECORD +36 -47
  33. {seleniumbase-4.30.8.dist-info → seleniumbase-4.31.1.dist-info}/WHEEL +1 -1
  34. sbase/ReadMe.txt +0 -2
  35. seleniumbase/ReadMe.md +0 -25
  36. seleniumbase/common/ReadMe.md +0 -71
  37. seleniumbase/console_scripts/ReadMe.md +0 -734
  38. seleniumbase/drivers/ReadMe.md +0 -27
  39. seleniumbase/extensions/ReadMe.md +0 -12
  40. seleniumbase/masterqa/ReadMe.md +0 -61
  41. seleniumbase/resources/ReadMe.md +0 -31
  42. seleniumbase/resources/favicon.ico +0 -0
  43. seleniumbase/utilities/selenium_grid/ReadMe.md +0 -84
  44. seleniumbase/utilities/selenium_ide/ReadMe.md +0 -111
  45. {seleniumbase-4.30.8.dist-info → seleniumbase-4.31.1.dist-info}/LICENSE +0 -0
  46. {seleniumbase-4.30.8.dist-info → seleniumbase-4.31.1.dist-info}/entry_points.txt +0 -0
  47. {seleniumbase-4.30.8.dist-info → seleniumbase-4.31.1.dist-info}/top_level.txt +0 -0
@@ -1,18 +1,20 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.30.8
3
+ Version: 4.31.1
4
4
  Summary: A complete web automation framework for end-to-end testing.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
7
7
  Author-email: mdmintz@gmail.com
8
8
  Maintainer: Michael Mintz
9
9
  License: MIT
10
+ Project-URL: Homepage, https://github.com/seleniumbase/SeleniumBase
10
11
  Project-URL: Changelog, https://github.com/seleniumbase/SeleniumBase/releases
11
12
  Project-URL: Download, https://pypi.org/project/seleniumbase/#files
12
- Project-URL: Gitter, https://gitter.im/seleniumbase/SeleniumBase
13
13
  Project-URL: Blog, https://seleniumbase.com/
14
+ Project-URL: Discord, https://discord.gg/EdhQTn3EyE
14
15
  Project-URL: PyPI, https://pypi.org/project/seleniumbase/
15
16
  Project-URL: Source, https://github.com/seleniumbase/SeleniumBase
17
+ Project-URL: Repository, https://github.com/seleniumbase/SeleniumBase
16
18
  Project-URL: Documentation, https://seleniumbase.io/
17
19
  Keywords: pytest,selenium,framework,automation,browser,testing,webdriver,seleniumbase,sbase,crawling,scraping
18
20
  Platform: Windows
@@ -32,7 +34,6 @@ Classifier: Operating System :: Microsoft :: Windows
32
34
  Classifier: Operating System :: POSIX :: Linux
33
35
  Classifier: Programming Language :: Python
34
36
  Classifier: Programming Language :: Python :: 3
35
- Classifier: Programming Language :: Python :: 3.7
36
37
  Classifier: Programming Language :: Python :: 3.8
37
38
  Classifier: Programming Language :: Python :: 3.9
38
39
  Classifier: Programming Language :: Python :: 3.10
@@ -55,142 +56,124 @@ Classifier: Topic :: Software Development :: Testing
55
56
  Classifier: Topic :: Software Development :: Testing :: Acceptance
56
57
  Classifier: Topic :: Software Development :: Testing :: Traffic Generation
57
58
  Classifier: Topic :: Utilities
58
- Requires-Python: >=3.7
59
+ Requires-Python: >=3.8
59
60
  Description-Content-Type: text/markdown
60
61
  License-File: LICENSE
61
- Requires-Dist: attrs >=24.2.0
62
- Requires-Dist: certifi >=2024.8.30
63
- Requires-Dist: exceptiongroup >=1.2.2
64
- Requires-Dist: parse >=1.20.2
65
- Requires-Dist: parse-type >=0.6.3
66
- Requires-Dist: six ==1.16.0
67
- Requires-Dist: idna ==3.8
68
- Requires-Dist: chardet ==5.2.0
69
- Requires-Dist: charset-normalizer ==3.3.2
70
- Requires-Dist: requests ==2.31.0
71
- Requires-Dist: pynose ==1.5.2
72
- Requires-Dist: sniffio ==1.3.1
73
- Requires-Dist: h11 ==0.14.0
74
- Requires-Dist: outcome ==1.3.0.post0
75
- Requires-Dist: trio-websocket ==0.11.1
76
- Requires-Dist: wsproto ==1.2.0
77
- Requires-Dist: cssselect ==1.2.0
78
- Requires-Dist: sortedcontainers ==2.4.0
79
- Requires-Dist: fasteners ==0.19
80
- Requires-Dist: iniconfig ==2.0.0
81
- Requires-Dist: py ==1.11.0
82
- Requires-Dist: pytest-html ==2.0.1
83
- Requires-Dist: pytest-ordering ==0.6
84
- Requires-Dist: parameterized ==0.9.0
85
- Requires-Dist: sbvirtualdisplay ==1.3.0
86
- Requires-Dist: behave ==1.2.6
87
- Requires-Dist: beautifulsoup4 ==4.12.3
88
- Requires-Dist: tabcompleter ==1.3.3
89
- Requires-Dist: pdbp ==1.5.4
90
- Requires-Dist: colorama ==0.4.6
91
- Requires-Dist: pyotp ==2.9.0
92
- Requires-Dist: mdurl ==0.1.2
93
- Requires-Dist: rich ==13.8.1
94
- Requires-Dist: python-xlib ==0.33 ; platform_system == "Linux"
95
- Requires-Dist: pyreadline3 ==3.4.1 ; platform_system == "Windows"
96
- Requires-Dist: urllib3 <2,>=1.26.20 ; python_version < "3.10"
97
- Requires-Dist: pip >=24.0 ; python_version < "3.8"
98
- Requires-Dist: packaging >=24.0 ; python_version < "3.8"
99
- Requires-Dist: setuptools >=68.0.0 ; python_version < "3.8"
100
- Requires-Dist: wheel >=0.42.0 ; python_version < "3.8"
101
- Requires-Dist: filelock >=3.12.2 ; python_version < "3.8"
102
- Requires-Dist: platformdirs >=4.0.0 ; python_version < "3.8"
103
- Requires-Dist: pyyaml ==6.0.1 ; python_version < "3.8"
104
- Requires-Dist: trio ==0.22.2 ; python_version < "3.8"
105
- Requires-Dist: selenium ==4.11.2 ; python_version < "3.8"
106
- Requires-Dist: execnet ==2.0.2 ; python_version < "3.8"
107
- Requires-Dist: pluggy ==1.2.0 ; python_version < "3.8"
108
- Requires-Dist: pytest ==7.4.4 ; python_version < "3.8"
109
- Requires-Dist: pytest-metadata ==3.0.0 ; python_version < "3.8"
110
- Requires-Dist: pytest-rerunfailures ==13.0 ; python_version < "3.8"
111
- Requires-Dist: pytest-xdist ==3.5.0 ; python_version < "3.8"
112
- Requires-Dist: soupsieve ==2.4.1 ; python_version < "3.8"
113
- Requires-Dist: pygments ==2.17.2 ; python_version < "3.8"
114
- Requires-Dist: markdown-it-py ==2.2.0 ; python_version < "3.8"
115
- Requires-Dist: setuptools >=70.2.0 ; python_version >= "3.10"
116
- Requires-Dist: urllib3 <2.3.0,>=1.26.20 ; python_version >= "3.10"
117
- Requires-Dist: pip >=24.1.2 ; python_version >= "3.8"
118
- Requires-Dist: packaging >=24.1 ; python_version >= "3.8"
119
- Requires-Dist: wheel >=0.44.0 ; python_version >= "3.8"
120
- Requires-Dist: filelock >=3.16.0 ; python_version >= "3.8"
121
- Requires-Dist: platformdirs >=4.3.2 ; python_version >= "3.8"
122
- Requires-Dist: typing-extensions >=4.12.2 ; python_version >= "3.8"
123
- Requires-Dist: pyyaml >=6.0.2 ; python_version >= "3.8"
124
- Requires-Dist: trio ==0.26.2 ; python_version >= "3.8"
125
- Requires-Dist: websocket-client ==1.8.0 ; python_version >= "3.8"
126
- Requires-Dist: selenium ==4.24.0 ; python_version >= "3.8"
127
- Requires-Dist: execnet ==2.1.1 ; python_version >= "3.8"
128
- Requires-Dist: pluggy ==1.5.0 ; python_version >= "3.8"
129
- Requires-Dist: pytest ==8.3.3 ; python_version >= "3.8"
130
- Requires-Dist: pytest-metadata ==3.1.1 ; python_version >= "3.8"
131
- Requires-Dist: pytest-rerunfailures ==14.0 ; python_version >= "3.8"
132
- Requires-Dist: pytest-xdist ==3.6.1 ; python_version >= "3.8"
133
- Requires-Dist: soupsieve ==2.6 ; python_version >= "3.8"
134
- Requires-Dist: pygments ==2.18.0 ; python_version >= "3.8"
135
- Requires-Dist: markdown-it-py ==3.0.0 ; python_version >= "3.8"
136
- Requires-Dist: setuptools ~=70.2 ; python_version >= "3.8" and python_version < "3.10"
62
+ Requires-Dist: pip>=24.1.2
63
+ Requires-Dist: packaging>=24.1
64
+ Requires-Dist: wheel>=0.44.0
65
+ Requires-Dist: attrs>=24.2.0
66
+ Requires-Dist: certifi>=2024.8.30
67
+ Requires-Dist: exceptiongroup>=1.2.2
68
+ Requires-Dist: filelock>=3.16.1
69
+ Requires-Dist: fasteners>=0.19
70
+ Requires-Dist: pynose>=1.5.3
71
+ Requires-Dist: platformdirs>=4.3.6
72
+ Requires-Dist: typing-extensions>=4.12.2
73
+ Requires-Dist: sbvirtualdisplay>=1.3.0
74
+ Requires-Dist: six>=1.16.0
75
+ Requires-Dist: parse>=1.20.2
76
+ Requires-Dist: parse-type>=0.6.3
77
+ Requires-Dist: colorama>=0.4.6
78
+ Requires-Dist: pyyaml>=6.0.2
79
+ Requires-Dist: pygments>=2.18.0
80
+ Requires-Dist: tabcompleter>=1.3.3
81
+ Requires-Dist: pdbp>=1.5.4
82
+ Requires-Dist: idna==3.10
83
+ Requires-Dist: chardet==5.2.0
84
+ Requires-Dist: charset-normalizer==3.3.2
85
+ Requires-Dist: requests==2.31.0
86
+ Requires-Dist: sniffio==1.3.1
87
+ Requires-Dist: h11==0.14.0
88
+ Requires-Dist: outcome==1.3.0.post0
89
+ Requires-Dist: trio==0.26.2
90
+ Requires-Dist: trio-websocket==0.11.1
91
+ Requires-Dist: wsproto==1.2.0
92
+ Requires-Dist: websocket-client==1.8.0
93
+ Requires-Dist: selenium==4.25.0
94
+ Requires-Dist: cssselect==1.2.0
95
+ Requires-Dist: sortedcontainers==2.4.0
96
+ Requires-Dist: execnet==2.1.1
97
+ Requires-Dist: iniconfig==2.0.0
98
+ Requires-Dist: pluggy==1.5.0
99
+ Requires-Dist: py==1.11.0
100
+ Requires-Dist: pytest==8.3.3
101
+ Requires-Dist: pytest-html==2.0.1
102
+ Requires-Dist: pytest-metadata==3.1.1
103
+ Requires-Dist: pytest-ordering==0.6
104
+ Requires-Dist: pytest-rerunfailures==14.0
105
+ Requires-Dist: pytest-xdist==3.6.1
106
+ Requires-Dist: parameterized==0.9.0
107
+ Requires-Dist: behave==1.2.6
108
+ Requires-Dist: soupsieve==2.6
109
+ Requires-Dist: beautifulsoup4==4.12.3
110
+ Requires-Dist: pyotp==2.9.0
111
+ Requires-Dist: markdown-it-py==3.0.0
112
+ Requires-Dist: mdurl==0.1.2
113
+ Requires-Dist: rich==13.8.1
114
+ Requires-Dist: python-xlib==0.33; platform_system == "Linux"
115
+ Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
116
+ Requires-Dist: setuptools~=70.2; python_version < "3.10"
117
+ Requires-Dist: urllib3<2,>=1.26.20; python_version < "3.10"
118
+ Requires-Dist: setuptools>=70.2.0; python_version >= "3.10"
119
+ Requires-Dist: urllib3<2.3.0,>=1.26.20; python_version >= "3.10"
137
120
  Provides-Extra: allure
138
- Requires-Dist: allure-pytest >=2.13.5 ; extra == 'allure'
139
- Requires-Dist: allure-python-commons >=2.13.5 ; extra == 'allure'
140
- Requires-Dist: allure-behave >=2.13.5 ; extra == 'allure'
121
+ Requires-Dist: allure-pytest>=2.13.5; extra == "allure"
122
+ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
123
+ Requires-Dist: allure-behave>=2.13.5; extra == "allure"
141
124
  Provides-Extra: coverage
142
- Requires-Dist: coverage ==7.2.7 ; (python_version < "3.8") and extra == 'coverage'
143
- Requires-Dist: pytest-cov ==4.1.0 ; (python_version < "3.8") and extra == 'coverage'
144
- Requires-Dist: coverage >=7.6.1 ; (python_version >= "3.8") and extra == 'coverage'
145
- Requires-Dist: pytest-cov >=5.0.0 ; (python_version >= "3.8") and extra == 'coverage'
125
+ Requires-Dist: coverage>=7.6.1; extra == "coverage"
126
+ Requires-Dist: pytest-cov>=5.0.0; extra == "coverage"
146
127
  Provides-Extra: flake8
147
- Requires-Dist: mccabe ==0.7.0 ; extra == 'flake8'
148
- Requires-Dist: flake8 ==5.0.4 ; (python_version < "3.9") and extra == 'flake8'
149
- Requires-Dist: pyflakes ==2.5.0 ; (python_version < "3.9") and extra == 'flake8'
150
- Requires-Dist: pycodestyle ==2.9.1 ; (python_version < "3.9") and extra == 'flake8'
151
- Requires-Dist: flake8 ==7.1.1 ; (python_version >= "3.9") and extra == 'flake8'
152
- Requires-Dist: pyflakes ==3.2.0 ; (python_version >= "3.9") and extra == 'flake8'
153
- Requires-Dist: pycodestyle ==2.12.1 ; (python_version >= "3.9") and extra == 'flake8'
128
+ Requires-Dist: mccabe==0.7.0; extra == "flake8"
129
+ Requires-Dist: flake8==5.0.4; python_version < "3.9" and extra == "flake8"
130
+ Requires-Dist: pyflakes==2.5.0; python_version < "3.9" and extra == "flake8"
131
+ Requires-Dist: pycodestyle==2.9.1; python_version < "3.9" and extra == "flake8"
132
+ Requires-Dist: flake8==7.1.1; python_version >= "3.9" and extra == "flake8"
133
+ Requires-Dist: pyflakes==3.2.0; python_version >= "3.9" and extra == "flake8"
134
+ Requires-Dist: pycodestyle==2.12.1; python_version >= "3.9" and extra == "flake8"
154
135
  Provides-Extra: ipdb
155
- Requires-Dist: ipdb ==0.13.13 ; extra == 'ipdb'
156
- Requires-Dist: ipython ==7.34.0 ; extra == 'ipdb'
136
+ Requires-Dist: ipdb==0.13.13; extra == "ipdb"
137
+ Requires-Dist: ipython==7.34.0; extra == "ipdb"
157
138
  Provides-Extra: pdfminer
158
- Requires-Dist: pycparser ==2.22 ; extra == 'pdfminer'
159
- Requires-Dist: pdfminer.six ==20221105 ; (python_version < "3.8") and extra == 'pdfminer'
160
- Requires-Dist: cffi ==1.15.1 ; (python_version < "3.8") and extra == 'pdfminer'
161
- Requires-Dist: cryptography ==39.0.2 ; (python_version < "3.9") and extra == 'pdfminer'
162
- Requires-Dist: pdfminer.six ==20240706 ; (python_version >= "3.8") and extra == 'pdfminer'
163
- Requires-Dist: cffi ==1.17.1 ; (python_version >= "3.8") and extra == 'pdfminer'
164
- Requires-Dist: cryptography ==43.0.1 ; (python_version >= "3.9") and extra == 'pdfminer'
139
+ Requires-Dist: pdfminer.six==20240706; extra == "pdfminer"
140
+ Requires-Dist: cffi==1.17.1; extra == "pdfminer"
141
+ Requires-Dist: pycparser==2.22; extra == "pdfminer"
142
+ Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
143
+ Requires-Dist: cryptography==43.0.1; python_version >= "3.9" and extra == "pdfminer"
165
144
  Provides-Extra: pillow
166
- Requires-Dist: Pillow ==9.5.0 ; (python_version < "3.8") and extra == 'pillow'
167
- Requires-Dist: Pillow >=10.4.0 ; (python_version >= "3.8") and extra == 'pillow'
145
+ Requires-Dist: Pillow>=10.4.0; extra == "pillow"
168
146
  Provides-Extra: pip-system-certs
169
- Requires-Dist: pip-system-certs ==4.0 ; (platform_system == "Windows") and extra == 'pip-system-certs'
147
+ Requires-Dist: pip-system-certs==4.0; platform_system == "Windows" and extra == "pip-system-certs"
170
148
  Provides-Extra: proxy
171
- Requires-Dist: proxy.py ==2.4.3 ; extra == 'proxy'
149
+ Requires-Dist: proxy.py==2.4.3; extra == "proxy"
172
150
  Provides-Extra: psutil
173
- Requires-Dist: psutil ==6.0.0 ; extra == 'psutil'
151
+ Requires-Dist: psutil==6.0.0; extra == "psutil"
174
152
  Provides-Extra: pyautogui
175
- Requires-Dist: PyAutoGUI ==0.9.54 ; extra == 'pyautogui'
153
+ Requires-Dist: PyAutoGUI==0.9.54; extra == "pyautogui"
176
154
  Provides-Extra: selenium-stealth
177
- Requires-Dist: selenium-stealth ==1.0.6 ; extra == 'selenium-stealth'
155
+ Requires-Dist: selenium-stealth==1.0.6; extra == "selenium-stealth"
178
156
  Provides-Extra: selenium-wire
179
- Requires-Dist: selenium-wire ==5.1.0 ; extra == 'selenium-wire'
180
- Requires-Dist: pyOpenSSL ==24.2.1 ; extra == 'selenium-wire'
181
- Requires-Dist: pyparsing >=3.1.4 ; extra == 'selenium-wire'
182
- Requires-Dist: Brotli ==1.1.0 ; extra == 'selenium-wire'
183
- Requires-Dist: blinker ==1.7.0 ; extra == 'selenium-wire'
184
- Requires-Dist: h2 ==4.1.0 ; extra == 'selenium-wire'
185
- Requires-Dist: hpack ==4.0.0 ; extra == 'selenium-wire'
186
- Requires-Dist: hyperframe ==6.0.1 ; extra == 'selenium-wire'
187
- Requires-Dist: kaitaistruct ==0.10 ; extra == 'selenium-wire'
188
- Requires-Dist: zstandard ==0.23.0 ; extra == 'selenium-wire'
189
- Requires-Dist: pyasn1 ==0.5.1 ; (python_version < "3.8") and extra == 'selenium-wire'
190
- Requires-Dist: pyasn1 ==0.6.1 ; (python_version >= "3.8") and extra == 'selenium-wire'
157
+ Requires-Dist: selenium-wire==5.1.0; extra == "selenium-wire"
158
+ Requires-Dist: pyOpenSSL==24.2.1; extra == "selenium-wire"
159
+ Requires-Dist: pyparsing>=3.1.4; extra == "selenium-wire"
160
+ Requires-Dist: Brotli==1.1.0; extra == "selenium-wire"
161
+ Requires-Dist: blinker==1.7.0; extra == "selenium-wire"
162
+ Requires-Dist: h2==4.1.0; extra == "selenium-wire"
163
+ Requires-Dist: hpack==4.0.0; extra == "selenium-wire"
164
+ Requires-Dist: hyperframe==6.0.1; extra == "selenium-wire"
165
+ Requires-Dist: kaitaistruct==0.10; extra == "selenium-wire"
166
+ Requires-Dist: pyasn1==0.6.1; extra == "selenium-wire"
167
+ Requires-Dist: zstandard==0.23.0; extra == "selenium-wire"
191
168
 
192
169
  <!-- SeleniumBase Docs -->
193
170
 
171
+ <meta property="og:site_name" content="SeleniumBase">
172
+ <meta property="og:title" content="SeleniumBase: Python Web Automation and E2E Testing" />
173
+ <meta property="og:description" content="Fast, easy, and reliable Web/UI testing with Python." />
174
+ <meta property="og:keywords" content="Python, pytest, selenium, webdriver, testing, automation, seleniumbase, framework, dashboard, recorder, reports, screenshots">
175
+ <meta property="og:image" content="https://seleniumbase.github.io/cdn/img/mac_sb_logo_5b.png" />
176
+ <link rel="icon" href="https://seleniumbase.github.io/img/logo7.png" />
194
177
 
195
178
  <h1>SeleniumBase</h1>
196
179
 
@@ -838,10 +821,12 @@ pytest test_coffee_cart.py --trace
838
821
  --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.)
839
822
  --wfa # (Wait for AngularJS to be done loading after specific web actions.)
840
823
  --pls=PLS # (Set pageLoadStrategy on Chrome: "normal", "eager", or "none".)
841
- --headless # (Run tests in headless mode. The default arg on Linux OS.)
842
- --headless2 # (Use the new headless mode, which supports extensions.)
824
+ --headless # (The default headless mode. Linux uses this mode by default.)
825
+ --headless1 # (Use Chrome's old headless mode. Fast, but has limitations.)
826
+ --headless2 # (Use Chrome's new headless mode, which supports extensions.)
843
827
  --headed # (Run tests in headed/GUI mode on Linux OS, where not default.)
844
828
  --xvfb # (Run tests using the Xvfb virtual display server on Linux OS.)
829
+ --xvfb-metrics=STRING # (Set Xvfb display size on Linux: "Width,Height".)
845
830
  --locale=LOCALE_CODE # (Set the Language Locale Code for the web browser.)
846
831
  --interval=SECONDS # (The autoplay interval for presentations & tour steps)
847
832
  --start-page=URL # (The starting URL for the web browser when tests begin.)
@@ -886,6 +871,7 @@ pytest test_coffee_cart.py --trace
886
871
  --rcs | --reuse-class-session # (Reuse session for tests in class.)
887
872
  --crumbs # (Delete all cookies between tests reusing a session.)
888
873
  --disable-beforeunload # (Disable the "beforeunload" event on Chrome.)
874
+ --window-position=X,Y # (Set the browser's starting window position.)
889
875
  --window-size=WIDTH,HEIGHT # (Set the browser's starting window size.)
890
876
  --maximize # (Start tests with the browser window maximized.)
891
877
  --screenshot # (Save a screenshot at the end of each test.)
@@ -1054,7 +1040,7 @@ pytest test_suite.py --dashboard --html=report.html
1054
1040
 
1055
1041
  <img src="https://seleniumbase.github.io/cdn/img/dash_report.jpg" alt="Dashboard Pytest HTML Report" title="Dashboard Pytest HTML Report" width="520" />
1056
1042
 
1057
- If viewing pytest html reports in [Jenkins](https://www.jenkins.io/), you may need to [configure Jenkins settings](https://stackoverflow.com/a/46197356) for the html to render correctly. This is due to [Jenkins CSP changes](https://www.jenkins.io/doc/book/system-administration/security/configuring-content-security-policy/).
1043
+ If viewing pytest html reports in [Jenkins](https://www.jenkins.io/), you may need to [configure Jenkins settings](https://stackoverflow.com/a/46197356/7058266) for the html to render correctly. This is due to [Jenkins CSP changes](https://www.jenkins.io/doc/book/system-administration/security/configuring-content-security-policy/).
1058
1044
 
1059
1045
  You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkins can use this file to display better reporting for your tests.
1060
1046
 
@@ -1,16 +1,13 @@
1
- sbase/ReadMe.txt,sha256=F_8szskzdRlPQ5DChxbsFTA0GOszvxtVQs6W8GCv6gw,90
2
- sbase/__init__.py,sha256=Kgq4COxq3G8FCBJHrLAMXQG3wGrmKjJ6L9tlaUi5PYo,562
1
+ sbase/__init__.py,sha256=02izDj786GVBT0bpSq2Q2O8uwSxtyT09pnobZz91ML8,605
3
2
  sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
4
3
  sbase/steps.py,sha256=bKT_u5bJkKzYWEuAXi9NVVRYYxQRCM1_YJUrNFFRVPY,42865
5
- seleniumbase/ReadMe.md,sha256=4nEdto4d0Ch0Zneg0yAC-RBBdqRqPUP0SCo-ze_XDPM,3612
6
- seleniumbase/__init__.py,sha256=dgq30q6wGO2fJOVYemxC5hLxzv-of-MRn5P1YarBq5k,2263
4
+ seleniumbase/__init__.py,sha256=pXetYtgSNEM2KRcZedpSSqE52Kr3spkOD6DjZO1Wsu4,2236
7
5
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
8
- seleniumbase/__version__.py,sha256=rlzZLfE73I_642pw7EWStQj7VqH17H1avL8qhR88qwk,46
6
+ seleniumbase/__version__.py,sha256=ZPjiQBuD0UdNKlKtSQnk1zCFPlVf6h5pTkS742IHrJc,46
9
7
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
8
  seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
11
- seleniumbase/behave/behave_sb.py,sha256=Yd4CRZegyl5esBoJN-DLygPt0AecwyRlDZtX7mmh9vs,57007
9
+ seleniumbase/behave/behave_sb.py,sha256=B8v7bR4Kie0RRYph9i43OT3PHhHent_hhB6uQUzVZ0I,59189
12
10
  seleniumbase/behave/steps.py,sha256=8-N-NB2tnDsxaP4LSg-uSBgbwZYMS6ZEL1oggO1PCoU,390
13
- seleniumbase/common/ReadMe.md,sha256=ib-L8nio7fDREqM3MMOpBHtYQa8dy_LlSsHV9XUUQ4Q,3296
14
11
  seleniumbase/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
12
  seleniumbase/common/decorators.py,sha256=LJnAgg0RG3kDOFb8tpyq1zjmpv9ks6Tjg8GwgIn1YuY,7633
16
13
  seleniumbase/common/encryption.py,sha256=IfAuE0hdrd3y-_qAQUWdSOKRGQ4QN24uTOBiQ9Eeq2s,5593
@@ -20,16 +17,15 @@ seleniumbase/common/unobfuscate.py,sha256=MgP6MMT9Wam6ECFVIA84WsQczfl_dFiumFu9m3
20
17
  seleniumbase/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
18
  seleniumbase/config/ad_block_list.py,sha256=qCQvbpONdSXk6q5tMwLuOswGYE1Syd8cy5TMIYFjTME,3380
22
19
  seleniumbase/config/proxy_list.py,sha256=tSdk82_6pPqClotHMl3YOTlxi9IIEppHmCoQDkZXLqw,1123
23
- seleniumbase/config/settings.py,sha256=n07U3PrrTgXgg5S1DIGnRuR6Y7AW11y06lvkflD7ZuE,7708
24
- seleniumbase/console_scripts/ReadMe.md,sha256=t2AWWINwkPgnx8HUM3vQRtdFRwBS2XLGxYnmTipeheE,20320
20
+ seleniumbase/config/settings.py,sha256=cAMmoFBQ6g8GCJIsRsSwGsP1_fJxhADxjHq30lFB18g,7815
25
21
  seleniumbase/console_scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- seleniumbase/console_scripts/logo_helper.py,sha256=F8pcANlWY6pdcMwHUdjjpjAD9i8XD0R5J-28eSh7QMM,1907
22
+ seleniumbase/console_scripts/logo_helper.py,sha256=GoCH_tTSPd-oGAacgFPpKw0MnJ3_i9eacxXdJMwNoH8,3136
27
23
  seleniumbase/console_scripts/rich_helper.py,sha256=U_zvXpalxVV8rtg8c8EnNNmnh45tii3AV5ZV3O3KbGA,2234
28
- seleniumbase/console_scripts/run.py,sha256=H7sWc5Bni_RTk4rWqiLZ6b1lhHnKjfVZjy1xYehl2YE,59327
29
- seleniumbase/console_scripts/sb_behave_gui.py,sha256=8uFTnHU3lPsxAlPFbGe4tH4fVryEbQeVBydwJZw3e9c,15403
30
- seleniumbase/console_scripts/sb_caseplans.py,sha256=HrML5SU6E_3gC8Ae5byo5tnBidrs0sY3feJ8ug4cR4o,18415
31
- seleniumbase/console_scripts/sb_commander.py,sha256=FdRLcEe3xOnnbU1bZI4_1ZLu5eKdR4JuIh37j5M-J00,13585
32
- seleniumbase/console_scripts/sb_install.py,sha256=SZlJyN51SzQVR7WKquJtukOo3_h2mK00UMTkb0HEciQ,45682
24
+ seleniumbase/console_scripts/run.py,sha256=bc4yk6NgMVVVD2ca6XsmL_4hmpOz6AS4MrTAV1gTgCk,59354
25
+ seleniumbase/console_scripts/sb_behave_gui.py,sha256=Sm8OVgq1SJ6F-8Dl-xflglEmOpNJn4C_-ZPuHRiZvTM,15375
26
+ seleniumbase/console_scripts/sb_caseplans.py,sha256=77Ocuok2v36x7i1Qmp6sGSdDf3H5y6gPB5QtxHHcjgo,18373
27
+ seleniumbase/console_scripts/sb_commander.py,sha256=SNBOApj4JV_jtdoV7WPFVSWhFqLkPWOpFB8KPKYufGU,13557
28
+ seleniumbase/console_scripts/sb_install.py,sha256=ljV9v1t05wP385Hz87QJ4QktjlX7QGuwDQyEuxbyyXI,46023
33
29
  seleniumbase/console_scripts/sb_mkchart.py,sha256=QDDjA8N_Qy62Mgbe2fnSU8mhZbKTVyV9KJRKYz2Tf7Y,11232
34
30
  seleniumbase/console_scripts/sb_mkdir.py,sha256=-OJrGM3upjdhCQb00zxSapS7eVtE49K3bR6KzsGvBbM,30049
35
31
  seleniumbase/console_scripts/sb_mkfile.py,sha256=mZCUl318UkLvW5v1C40Tx19q6_aVJOfTZoKfd3XcakU,18132
@@ -37,10 +33,10 @@ seleniumbase/console_scripts/sb_mkpres.py,sha256=5MEYFKATmh68wy0SRi2NQtO71MN7m-r
37
33
  seleniumbase/console_scripts/sb_mkrec.py,sha256=0mJYe689QamICVaaFn3Aw_GkmSeFkHBYfnF48Wa4Fd4,12225
38
34
  seleniumbase/console_scripts/sb_objectify.py,sha256=SRYY_cZ-Ip6Lj65T2maXRyJctOWAFhGSc-Xlc-u-2CM,122140
39
35
  seleniumbase/console_scripts/sb_print.py,sha256=yo641b_OdSE0GUauOyxk-QrNeIjYzbRYRSUL-U0ZH80,30776
40
- seleniumbase/console_scripts/sb_recorder.py,sha256=9rLgxq_K2g37zpEPYtQ8j01u2fGkZpacw3Xi6o_ENWc,11162
36
+ seleniumbase/console_scripts/sb_recorder.py,sha256=QazacANTQgoc76abAfFUV0d4ja1o-bbsoX9sTPZr_eg,11134
41
37
  seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
38
  seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
43
- seleniumbase/core/browser_launcher.py,sha256=2AbA7FhWRJTu7WF80ogPk7x_IGHnc6oQSNm7oVrLZJE,200615
39
+ seleniumbase/core/browser_launcher.py,sha256=udC8RtY7E6rcw5m5zkrpQZLtyz5yXFiwL7hmub8Iw5g,204822
44
40
  seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
45
41
  seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
46
42
  seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
@@ -49,34 +45,32 @@ seleniumbase/core/download_helper.py,sha256=qSR54kQISucF4RQaLCOuuerSu6DR41juGi_3
49
45
  seleniumbase/core/encoded_images.py,sha256=rDKJ4cNJSuKiRcFViYU7bjyTS9_moI57gUPRXVg3u2k,14209
50
46
  seleniumbase/core/jqc_helper.py,sha256=2DDQr9Q2jSSZqFzX588jLlUM9oJvyrRWq2aORSIPUdI,10322
51
47
  seleniumbase/core/log_helper.py,sha256=c4gWI_spHF0N9co2W0-eR_s3y20v9FrQH8c9Vb76BXU,22593
52
- seleniumbase/core/mysql.py,sha256=brugSl8yuVxIn-5_I7YrIVfCg3Qdf5YdTjSAG7Gs_34,4143
48
+ seleniumbase/core/mysql.py,sha256=8Fzj3p5dhtDWfMpFqFYxpSwa9s1UltiHsWJ56_aPOqk,3993
53
49
  seleniumbase/core/proxy_helper.py,sha256=cXhu8ErK9Vjdm82RMaQj7hEq_yUWizSp6LyiD50Ieu4,8020
54
- seleniumbase/core/recorder_helper.py,sha256=k0_1fPmlr0GrwxIFs0Lqw4MZjNKmLeRqLw0IzfE_fzg,24320
50
+ seleniumbase/core/recorder_helper.py,sha256=fNGjbapXmEsht54x1o6Igk198QdnPxDDnjUOzQxNhNQ,25055
55
51
  seleniumbase/core/report_helper.py,sha256=AIl6Qava2yW1uSzbLpJBlPlYDz0KE-rVhogh8hsGWBo,12201
56
52
  seleniumbase/core/s3_manager.py,sha256=bkeI8I4y19ebWuQG1oEZV5qJbotC6eN8vin31OCNWJk,3521
57
- seleniumbase/core/sb_driver.py,sha256=dyELXLvybiBD4vyjA9zDDIjMeJBJb2Be3_Al9Ve_peM,9735
53
+ seleniumbase/core/sb_driver.py,sha256=_oC9esOgxhKXssMEzS-3gfNuqevJSr8eZ39ClL4ZuSk,10037
58
54
  seleniumbase/core/session_helper.py,sha256=s9zD3PVZEWVzG2h81cCUskbNWLfdjC_LwwQjKptHCak,558
59
- seleniumbase/core/settings_parser.py,sha256=FQ8H0dRWgvUNZj_O3T6IrYOtHY0jWaYN9tsKqeNEis8,7306
55
+ seleniumbase/core/settings_parser.py,sha256=KokVXpCiGZhJ-D4Bo-hizPz5r-iefzWoiTANu9zNaq4,7504
60
56
  seleniumbase/core/style_sheet.py,sha256=tPpJ1xl6Kuw425Z-3Y0OgVRLGXk_ciBDREZjXk_NuPE,11395
61
57
  seleniumbase/core/testcase_manager.py,sha256=TblCfo8Zfap1Bayip-qTu9gqT-KALSwXAX4awBpnEHg,4633
62
58
  seleniumbase/core/tour_helper.py,sha256=kj2cz-DGKlw9SX3tWnVp-snpk6Flvqj81-xmKdKDtg0,42555
63
59
  seleniumbase/core/visual_helper.py,sha256=Dj5iJKw-bT_3e6KDqMf0sJi7xs_D96yqLcNc8fqhrjI,3408
64
- seleniumbase/drivers/ReadMe.md,sha256=4yTQZ-dkYpYoVY6frpbC-cW2ZIw2gh40hQMXT7qFPOQ,1256
65
60
  seleniumbase/drivers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- seleniumbase/extensions/ReadMe.md,sha256=kF6H5-1VHlXRjf4NV0KarbzF75EeXvV7GKBvuepEUnM,676
67
61
  seleniumbase/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
62
  seleniumbase/extensions/ad_block.zip,sha256=25YRmK3cSUUSYmyuksTxQnn6rIzCGY_MtaNlzr0fcxQ,11978
69
63
  seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1umHhtgduCU,11824
70
64
  seleniumbase/extensions/recorder.zip,sha256=OOyzF-Ize2cSRu1CqhzSAq5vusI9hqLLd2OIApUHesI,11918
71
65
  seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
72
66
  seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- seleniumbase/fixtures/base_case.py,sha256=m7B1S5K7BhDyNfs9nRhrdvHbWLG8mEg83E7GCAvu4AA,702191
67
+ seleniumbase/fixtures/base_case.py,sha256=Rz0gC0gAse85jcV4iiY_fxLaoq6-QJTcUAVNk7DVOhM,702330
74
68
  seleniumbase/fixtures/constants.py,sha256=TapuGLdERtvZPGMblVXkNGybr8tj8FMtN3sbJ3ygyoc,13569
75
69
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
76
70
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
77
- seleniumbase/fixtures/js_utils.py,sha256=NAUxF4-pDyp8NFlPajLmDlFhEPK5NYTpDM6crAe7_hA,51194
78
- seleniumbase/fixtures/page_actions.py,sha256=_LBmIqKBdRlgrKnl6aKUcHbns1GC18_YNvuRniRv1V8,63066
79
- seleniumbase/fixtures/page_utils.py,sha256=VJmhImXorrrXqokFvbDMGBWODLa9bHiaviHAO0r_0W0,12907
71
+ seleniumbase/fixtures/js_utils.py,sha256=cYFRazc6iO2tTB5kf3_mW3czMQ8mJ5OSHldx7n31E8E,50940
72
+ seleniumbase/fixtures/page_actions.py,sha256=5xYWeTDLs9i1yOs5iWDk17CLoiUU5kRLHlmKRUJ7TcQ,63030
73
+ seleniumbase/fixtures/page_utils.py,sha256=5m7iXpikLs80TJoRO6_gEfXE1AKeQgcH1aFbR8o1C9A,12034
80
74
  seleniumbase/fixtures/shared_utils.py,sha256=Fc78v0OxfLPOPqeT8ExsdkTgXHlmpxvJeLbLyDnu1dI,5748
81
75
  seleniumbase/fixtures/unittest_helper.py,sha256=sfZ92rZeBAn_sF_yQ3I6_I7h3lyU5-cV_UMegBNoEm8,1294
82
76
  seleniumbase/fixtures/words.py,sha256=FOA4mAYvl3EPVpBTvgvK6YwCL8BdlRCmed685kEe7Vg,7827
@@ -85,23 +79,20 @@ seleniumbase/js_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
85
79
  seleniumbase/js_code/active_css_js.py,sha256=MgwbcwatW0ChsM9UdbXdE1pJr9c5i9dhnbXXw9dhq7Y,9929
86
80
  seleniumbase/js_code/live_js.py,sha256=yfJTRhKOXhsaonkQ2e0JGUTXBnQBASTw2zXukhlyQfA,6619
87
81
  seleniumbase/js_code/recorder_js.py,sha256=ApFNh6DImuPGmaydvq8OOzGixc0t-xdYSCzfQSIcLJY,30985
88
- seleniumbase/masterqa/ReadMe.md,sha256=ZzvsTSY9MCZnIR9e_ZvMxeo6NTOBVad0nCilBenXmrg,3317
89
82
  seleniumbase/masterqa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
83
  seleniumbase/masterqa/master_qa.py,sha256=jLWmAx32Rnu1IhmvrRt8BbsUIcDW5xYj2ouVozny-Y4,19258
91
84
  seleniumbase/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
- seleniumbase/plugins/base_plugin.py,sha256=o_-IraDNgsMEJQv1HsmS5ZcTvYOXiQ4NpxryG2m9c2A,14970
85
+ seleniumbase/plugins/base_plugin.py,sha256=FemdftNhOaTfQIw5bWcJQPPPGQ3P0_sMEI_YYDuzZgU,14972
93
86
  seleniumbase/plugins/basic_test_info.py,sha256=8ov6n417gPbqqvrlT4zrch7l2XcRt-GF2ny6rR9AMWk,2108
94
87
  seleniumbase/plugins/db_reporting_plugin.py,sha256=En09qUCoojrk9-vbcnsoHdSELoGmag2GDIyu3jTiJas,7331
95
- seleniumbase/plugins/driver_manager.py,sha256=dBwltG0AMj3uMFq6s40MWKaGyaLyh-f38rqoWVBcRQE,24491
88
+ seleniumbase/plugins/driver_manager.py,sha256=Rs2UE1yv5Npcdev7F4nwhQoTD25MpNYDINe7H0luyfY,33361
96
89
  seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
97
- seleniumbase/plugins/pytest_plugin.py,sha256=Z7ZcGihVgDNDcM9uRisgF16zV90OfrBFJgmmC_58uuw,95556
90
+ seleniumbase/plugins/pytest_plugin.py,sha256=1NTzVJOd6zMvq16lPQHglfdguU3C0tj94FY6DZNZUBU,97106
98
91
  seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
99
- seleniumbase/plugins/sb_manager.py,sha256=1YbkK0FGf_A5_pDnCMYJSYZwLNihkOk9bkQHRmWI_MU,42968
92
+ seleniumbase/plugins/sb_manager.py,sha256=g5woe7oYYe4Dav50nuIN5RClynrvZ1H8uhxLSyxl9Q4,53016
100
93
  seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
101
- seleniumbase/plugins/selenium_plugin.py,sha256=FwEGt10XuG3aqpApYogiiAcqNn3e4hYOWqKsuimsTg4,55724
102
- seleniumbase/resources/ReadMe.md,sha256=uminnO5_Uv-UZDKcc9a9s9kxisaYUps-H98Fp5PJcaU,2124
94
+ seleniumbase/plugins/selenium_plugin.py,sha256=yDk-CuyuRiMw3eZlUOWh15d5WtsTex_dhhdMxKUUexg,58583
103
95
  seleniumbase/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
- seleniumbase/resources/favicon.ico,sha256=QPf_YK0QXa_--C4_CH-odh6OTHRQ9k-4O6WcCpXSdwM,1150
105
96
  seleniumbase/translate/__init__.py,sha256=N2i5XntTwJZmwr9-qvdX5gC6Rdm5-ClIbnQ8yyPn4Oo,459
106
97
  seleniumbase/translate/chinese.py,sha256=0QhK2eadtsdN4KCvwki1J7jBCe8I4xxWbKzteJKJozY,24698
107
98
  seleniumbase/translate/dutch.py,sha256=-sazERTpITu8rGsiDrA5sDdbviitnNeBc1wyaVsoksI,25338
@@ -114,15 +105,14 @@ seleniumbase/translate/portuguese.py,sha256=x3P4qxp56UiI41GoaL7JbUvFRYsgXU1EKjTg
114
105
  seleniumbase/translate/russian.py,sha256=TyN9n0b4GRWDEYnHRGw1rfNAscdDmP3F3Y3aySM3C7s,27978
115
106
  seleniumbase/translate/spanish.py,sha256=hh3xgW1Pq122SHYVvJAxFaXhFrjniOVncVbJbfWqOUM,25528
116
107
  seleniumbase/translate/translator.py,sha256=yfoa4tCAbaD0W3gcbjsoGpNZjJdTY246W9uGuTlh4bw,49436
117
- seleniumbase/undetected/__init__.py,sha256=OCTExZ-VtAxMiarnpbPXurTTOp2-rBdqH2K7ywlZawk,22275
108
+ seleniumbase/undetected/__init__.py,sha256=82W0QApYJ66iwUNLVBK4ixpPa2ri88CuxE3X7fO0284,21896
118
109
  seleniumbase/undetected/cdp.py,sha256=EralLQm8diG5i6EoHFXHIQEc7Uf7PWtzyPH_upS5RIs,4047
119
- seleniumbase/undetected/dprocess.py,sha256=WWQ_X_-Q7Lfx1m6oxkYHU0eTIc76Jodph4n1QnK4GEE,1706
120
- seleniumbase/undetected/options.py,sha256=SGuz8iqlVPYN7IexNiGauupWF0xP3mqO72-9tgIqeuI,2999
121
- seleniumbase/undetected/patcher.py,sha256=u8X3uFBCTJ4XcU09AWpbDyPc-dm2LM-YeuciCp5AEdM,10853
110
+ seleniumbase/undetected/dprocess.py,sha256=VLwyLWXSg-6GkeKpAQcTXLRmuBb0oEdku3_qgMifuwY,1705
111
+ seleniumbase/undetected/options.py,sha256=jc6Km-gZePOemnolD7UF7dDXpxmRtAE2XDraLUdaIFE,2968
112
+ seleniumbase/undetected/patcher.py,sha256=v_Oz5yOuwav2lofJbhvtZ1vKIMvNa4hnHaLLSrEDX0c,10854
122
113
  seleniumbase/undetected/reactor.py,sha256=UT1pEnGaTPZT7-0-xKROk9_eWDZueGzSUrCksc22nyA,2883
123
114
  seleniumbase/undetected/webelement.py,sha256=_s6evgUkdWJpwOnzX4qR9i796PoVbz3txlzHlOBJ4BE,1370
124
115
  seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
- seleniumbase/utilities/selenium_grid/ReadMe.md,sha256=Uqvn4KmhaMY_jrhcsxL2WptCukPq1J3Yz-9WenCXEu0,3599
126
116
  seleniumbase/utilities/selenium_grid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
117
  seleniumbase/utilities/selenium_grid/download_selenium_server.py,sha256=ZdoInIbhtmdKCIPxxtJHhd2sqotqcNXWMYbwWrkh9O0,1727
128
118
  seleniumbase/utilities/selenium_grid/font_color,sha256=NLVgBzkyygZjIf_hZWpMUlO5kHIUWG7ZWyoLhaLUCgY,468
@@ -134,12 +124,11 @@ seleniumbase/utilities/selenium_grid/register-grid-node.bat,sha256=d-PTBiMXyRAsJ
134
124
  seleniumbase/utilities/selenium_grid/register-grid-node.sh,sha256=TJE3VkkpXsR3GsBtULIRhsAPuW9LJlglKAHJ-QHkK3c,275
135
125
  seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPrI3F0tw3EB4BZ4oGplOObX9cuTA,94
136
126
  seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
137
- seleniumbase/utilities/selenium_ide/ReadMe.md,sha256=hznGeuMpkIimqMiZBW-4goIy2ltW4l8X9kb0YSPUQfE,4483
138
127
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
128
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
140
- seleniumbase-4.30.8.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
- seleniumbase-4.30.8.dist-info/METADATA,sha256=FTgBLVlh9d_LCMitkgu6sjnd2pHTEEwdDElecC6Ueks,86759
142
- seleniumbase-4.30.8.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
143
- seleniumbase-4.30.8.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.30.8.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.30.8.dist-info/RECORD,,
129
+ seleniumbase-4.31.1.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
130
+ seleniumbase-4.31.1.dist-info/METADATA,sha256=MShVjw08x3Ga43QfWzUgOWal5fuCx_hMdQuK_rsYEm4,85244
131
+ seleniumbase-4.31.1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
132
+ seleniumbase-4.31.1.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
133
+ seleniumbase-4.31.1.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
134
+ seleniumbase-4.31.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.2)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
sbase/ReadMe.txt DELETED
@@ -1,2 +0,0 @@
1
- "SBase" is the short name of "SeleniumBase".
2
- Use with console scripts: "python -m sbase".
seleniumbase/ReadMe.md DELETED
@@ -1,25 +0,0 @@
1
- <img src="https://seleniumbase.github.io/cdn/img/sb_word_cloud.png" alt="SeleniumBase" title="SeleniumBase" width="330" />
2
-
3
- <h2><img src="https://seleniumbase.github.io/img/logo3b.png" title="SeleniumBase" width="32" /> Framework Folders</h2>
4
-
5
- * <b>[fixtures](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/fixtures):</b> Includes [base_case.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/fixtures/base_case.py), where SeleniumBase test methods are defined.
6
- * <b>[core](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/core):</b> Includes [browser_launcher.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/core/browser_launcher.py), which is used for spinning up browsers for tests.
7
- * <b>[plugins](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/plugins):</b> Includes [pytest_plugin.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/plugins/pytest_plugin.py), which is used to add pytest command-line options.
8
- * <b>[console_scripts](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/console_scripts):</b> Includes [run.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/run.py), which is used to call SeleniumBase console scripts.
9
- * <b>[drivers](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/drivers):</b> This is the folder where web drivers get downloaded when installing them.
10
- * <b>[config](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/config):</b> Includes [settings.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/config/settings.py), which provides default configuration options for tests.
11
- * <b>[js_code](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/js_code):</b> This folder contains JavaScript code for various SeleniumBase components.
12
- * <b>[undetected](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/undetected):</b> This folder contains code for preventing sites from detecting Selenium.
13
- * <b>[extensions](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/extensions):</b> This folder contains Chromium extensions that can be used by tests.
14
- * <b>[common](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/common):</b> This folder contains Python decorators that can be used by tests.
15
- * <b>[utilities](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/utilities):</b> This folder contains code for spinning up your own Selenium Grid.
16
- * <b>[resources](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/resources):</b> This folder contains copies of JavaScript resources used by tests.
17
- * <b>[translate](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/translate):</b> This folder contains code for translating tests into different languages.
18
- * <b>[behave](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/behave):</b> This folder contains code for integrating with the Behave BDD test runner.
19
- * <b>[masterqa](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/masterqa):</b> MasterQA is a tool for combining automation with manual verification.
20
-
21
- --------
22
-
23
- <img src="https://seleniumbase.github.io/cdn/img/sb_text_f.png" title="SeleniumBase" align="center" width="360">
24
-
25
- <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_gs.png" alt="SeleniumBase" width="360" /></a></div>
@@ -1,71 +0,0 @@
1
- <!-- SeleniumBase Docs -->
2
-
3
- ## [seleniumbase/common](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/common) decorators and security.
4
-
5
- ### Part 1: Decorators - (from [decorators.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/common/decorators.py))
6
-
7
- #### Use these Python decorators with your test methods as needed:
8
-
9
- * ``@print_runtime(description=None, limit=None)``
10
-
11
- * ``@runtime_limit(limit, description=None)``
12
-
13
- * ``@retry_on_exception(tries=6, delay=1, backoff=2, max_delay=32)``
14
-
15
- * ``@rate_limited(max_per_second)``
16
-
17
- Example demonstrating a rate-limited printing functionality:
18
-
19
- ```python
20
- import unittest
21
- from seleniumbase import decorators
22
-
23
- class MyTestClass(unittest.TestCase):
24
-
25
- @decorators.rate_limited(3.5) # The arg is max calls per second
26
- def print_item(self, item):
27
- print(item)
28
-
29
- def test_rate_limited_printing(self):
30
- print("\nRunning rate-limited print test:")
31
- for item in range(1, 11):
32
- self.print_item(item)
33
- ```
34
-
35
- ### Part 2: String/Password Obfuscation, Encryption, and Decryption
36
-
37
- #### Intro:
38
-
39
- Often in your tests, you may need to login to a website to perform testing. This generally means storing passwords in plaintext formats. For security reasons, that may not be an optimal solution. For this reason, encryption/obfuscation tools have been built here to help you mask your passwords in your tests. It's not a bulletproof solution, but it can keep anyone looking over your shoulder during test creation from getting your login passwords if they don't have your encryption key, which is stored in a separate file.
40
-
41
- #### Usage:
42
-
43
- * First, set your custom encryption/decryption key in your local clone of [settings.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/config/settings.py). (If you modify the key later, you'll need to encrypt all your passwords again.)
44
-
45
- * Next, use [obfuscate.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/common/obfuscate.py) to obfuscate/encrypt passwords into coded strings:
46
-
47
- ```bash
48
- python obfuscate.py
49
-
50
- Enter password to obfuscate: (CTRL+C to exit)
51
- Password: *********
52
- Verify password:
53
- Password: *********
54
-
55
- Here is the obfuscated password:
56
- $^*ENCRYPT=RXlYMSJWTz8HSwM=?&#$
57
- ```
58
-
59
- (You can also use [unobfuscate.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/common/unobfuscate.py) to encrypt passwords without having them masked while typing them. Or you can use it to decrypt an obfuscated password.)
60
-
61
- * Finally, in your tests you can now decrypt obfuscated passwords for use in login methods like this:
62
-
63
- ```python
64
- from seleniumbase import encryption
65
- ...
66
- password = encryption.decrypt('$^*ENCRYPT=RXlYMSJWTz8HSwM=?&#$')
67
- ```
68
-
69
- (You'll notice that encrypted strings have a common start token and end token. This is to help tell them apart from non-encrypted strings. You can customize these tokens in [settings.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/config/settings.py). The current default setting is `$^*ENCRYPT=` for the start token and `?&#$` for the end token.)
70
-
71
- See [decryption_test.py](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/decryption_test.py) for an example of decrypting encrypted passwords in tests.