seleniumbase 4.25.1__py3-none-any.whl → 4.25.3__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.
- seleniumbase/__version__.py +1 -1
- seleniumbase/fixtures/base_case.py +17 -0
- seleniumbase/undetected/webelement.py +4 -1
- {seleniumbase-4.25.1.dist-info → seleniumbase-4.25.3.dist-info}/METADATA +31 -26
- {seleniumbase-4.25.1.dist-info → seleniumbase-4.25.3.dist-info}/RECORD +9 -9
- {seleniumbase-4.25.1.dist-info → seleniumbase-4.25.3.dist-info}/LICENSE +0 -0
- {seleniumbase-4.25.1.dist-info → seleniumbase-4.25.3.dist-info}/WHEEL +0 -0
- {seleniumbase-4.25.1.dist-info → seleniumbase-4.25.3.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.25.1.dist-info → seleniumbase-4.25.3.dist-info}/top_level.txt +0 -0
    
        seleniumbase/__version__.py
    CHANGED
    
    | @@ -1,2 +1,2 @@ | |
| 1 1 | 
             
            # seleniumbase package
         | 
| 2 | 
            -
            __version__ = "4.25. | 
| 2 | 
            +
            __version__ = "4.25.3"
         | 
| @@ -4134,6 +4134,23 @@ class BaseCase(unittest.TestCase): | |
| 4134 4134 | 
             
                                    self.__dont_record_open = True
         | 
| 4135 4135 | 
             
                                    self.open(new_start_page)
         | 
| 4136 4136 | 
             
                                    self.__dont_record_open = False
         | 
| 4137 | 
            +
                    if undetectable:
         | 
| 4138 | 
            +
                        if hasattr(new_driver, "uc_open"):
         | 
| 4139 | 
            +
                            self.uc_open = new_driver.uc_open
         | 
| 4140 | 
            +
                        if hasattr(new_driver, "uc_open_with_tab"):
         | 
| 4141 | 
            +
                            self.uc_open_with_tab = new_driver.uc_open_with_tab
         | 
| 4142 | 
            +
                        if hasattr(new_driver, "uc_open_with_reconnect"):
         | 
| 4143 | 
            +
                            self.uc_open_with_reconnect = new_driver.uc_open_with_reconnect
         | 
| 4144 | 
            +
                        if hasattr(new_driver, "reconnect"):
         | 
| 4145 | 
            +
                            self.reconnect = new_driver.reconnect
         | 
| 4146 | 
            +
                        if hasattr(new_driver, "disconnect"):
         | 
| 4147 | 
            +
                            self.disconnect = new_driver.disconnect
         | 
| 4148 | 
            +
                        if hasattr(new_driver, "connect"):
         | 
| 4149 | 
            +
                            self.connect = new_driver.connect
         | 
| 4150 | 
            +
                        if hasattr(new_driver, "uc_click"):
         | 
| 4151 | 
            +
                            self.uc_click = new_driver.uc_click
         | 
| 4152 | 
            +
                        if hasattr(new_driver, "uc_switch_to_frame"):
         | 
| 4153 | 
            +
                            self.uc_switch_to_frame = new_driver.uc_switch_to_frame
         | 
| 4137 4154 | 
             
                    return new_driver
         | 
| 4138 4155 |  | 
| 4139 4156 | 
             
                def switch_to_driver(self, driver):
         | 
| @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            import re
         | 
| 1 2 | 
             
            import selenium.webdriver.remote.webelement
         | 
| 2 3 | 
             
            from seleniumbase.fixtures import js_utils
         | 
| 3 4 |  | 
| @@ -13,10 +14,12 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement): | |
| 13 14 | 
             
                ):
         | 
| 14 15 | 
             
                    if driver and selector and by:
         | 
| 15 16 | 
             
                        delayed_click = False
         | 
| 16 | 
            -
                        if tag_name  | 
| 17 | 
            +
                        if tag_name in ["span", "button", "div", "a"]:
         | 
| 17 18 | 
             
                            delayed_click = True
         | 
| 18 19 | 
             
                        if delayed_click and ":contains" not in selector:
         | 
| 19 20 | 
             
                            selector = js_utils.convert_to_css_selector(selector, by)
         | 
| 21 | 
            +
                            selector = re.escape(selector)
         | 
| 22 | 
            +
                            selector = js_utils.escape_quotes_if_needed(selector)
         | 
| 20 23 | 
             
                            script = 'document.querySelector("%s").click();' % selector
         | 
| 21 24 | 
             
                            js_utils.call_me_later(driver, script, 111)
         | 
| 22 25 | 
             
                        else:
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Metadata-Version: 2.1
         | 
| 2 2 | 
             
            Name: seleniumbase
         | 
| 3 | 
            -
            Version: 4.25. | 
| 3 | 
            +
            Version: 4.25.3
         | 
| 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
         | 
| @@ -66,7 +66,7 @@ Requires-Dist: parse >=1.20.1 | |
| 66 66 | 
             
            Requires-Dist: parse-type >=0.6.2
         | 
| 67 67 | 
             
            Requires-Dist: pyyaml >=6.0.1
         | 
| 68 68 | 
             
            Requires-Dist: six ==1.16.0
         | 
| 69 | 
            -
            Requires-Dist: idna ==3. | 
| 69 | 
            +
            Requires-Dist: idna ==3.7
         | 
| 70 70 | 
             
            Requires-Dist: chardet ==5.2.0
         | 
| 71 71 | 
             
            Requires-Dist: charset-normalizer ==3.3.2
         | 
| 72 72 | 
             
            Requires-Dist: requests ==2.31.0
         | 
| @@ -79,7 +79,6 @@ Requires-Dist: wsproto ==1.2.0 | |
| 79 79 | 
             
            Requires-Dist: cssselect ==1.2.0
         | 
| 80 80 | 
             
            Requires-Dist: sortedcontainers ==2.4.0
         | 
| 81 81 | 
             
            Requires-Dist: fasteners ==0.19
         | 
| 82 | 
            -
            Requires-Dist: execnet ==2.0.2
         | 
| 83 82 | 
             
            Requires-Dist: iniconfig ==2.0.0
         | 
| 84 83 | 
             
            Requires-Dist: py ==1.11.0
         | 
| 85 84 | 
             
            Requires-Dist: pytest-html ==2.0.1
         | 
| @@ -105,6 +104,7 @@ Requires-Dist: filelock >=3.12.2 ; python_version < "3.8" | |
| 105 104 | 
             
            Requires-Dist: platformdirs >=4.0.0 ; python_version < "3.8"
         | 
| 106 105 | 
             
            Requires-Dist: trio ==0.22.2 ; python_version < "3.8"
         | 
| 107 106 | 
             
            Requires-Dist: selenium ==4.11.2 ; python_version < "3.8"
         | 
| 107 | 
            +
            Requires-Dist: execnet ==2.0.2 ; python_version < "3.8"
         | 
| 108 108 | 
             
            Requires-Dist: pluggy ==1.2.0 ; python_version < "3.8"
         | 
| 109 109 | 
             
            Requires-Dist: pytest ==7.4.4 ; python_version < "3.8"
         | 
| 110 110 | 
             
            Requires-Dist: pytest-metadata ==3.0.0 ; python_version < "3.8"
         | 
| @@ -114,11 +114,12 @@ Requires-Dist: markdown-it-py ==2.2.0 ; python_version < "3.8" | |
| 114 114 | 
             
            Requires-Dist: urllib3 <2.3.0,>=1.26.18 ; python_version >= "3.10"
         | 
| 115 115 | 
             
            Requires-Dist: setuptools >=69.2.0 ; python_version >= "3.8"
         | 
| 116 116 | 
             
            Requires-Dist: wheel >=0.43.0 ; python_version >= "3.8"
         | 
| 117 | 
            -
            Requires-Dist: filelock >=3.13. | 
| 117 | 
            +
            Requires-Dist: filelock >=3.13.4 ; python_version >= "3.8"
         | 
| 118 118 | 
             
            Requires-Dist: platformdirs >=4.2.0 ; python_version >= "3.8"
         | 
| 119 | 
            -
            Requires-Dist: typing-extensions >=4. | 
| 119 | 
            +
            Requires-Dist: typing-extensions >=4.11.0 ; python_version >= "3.8"
         | 
| 120 120 | 
             
            Requires-Dist: trio ==0.25.0 ; python_version >= "3.8"
         | 
| 121 121 | 
             
            Requires-Dist: selenium ==4.19.0 ; python_version >= "3.8"
         | 
| 122 | 
            +
            Requires-Dist: execnet ==2.1.1 ; python_version >= "3.8"
         | 
| 122 123 | 
             
            Requires-Dist: pluggy ==1.4.0 ; python_version >= "3.8"
         | 
| 123 124 | 
             
            Requires-Dist: pytest ==8.1.1 ; python_version >= "3.8"
         | 
| 124 125 | 
             
            Requires-Dist: pytest-metadata ==3.1.1 ; python_version >= "3.8"
         | 
| @@ -180,9 +181,10 @@ Requires-Dist: zstandard ==0.22.0 ; extra == 'selenium-wire' | |
| 180 181 |  | 
| 181 182 | 
             
            <h1>SeleniumBase</h1>
         | 
| 182 183 |  | 
| 183 | 
            -
            <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/ | 
| 184 | 
            +
            <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
         | 
| 184 185 |  | 
| 185 | 
            -
             | 
| 186 | 
            +
             | 
| 187 | 
            +
            <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
         | 
| 186 188 |  | 
| 187 189 | 
             
            <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></p>
         | 
| 188 190 |  | 
| @@ -226,7 +228,11 @@ Requires-Dist: zstandard ==0.22.0 ; extra == 'selenium-wire' | |
| 226 228 |  | 
| 227 229 | 
             
            --------
         | 
| 228 230 |  | 
| 229 | 
            -
            📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/**](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) | 
| 231 | 
            +
            📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/** folder](https://github.com/seleniumbase/SeleniumBase/tree/master/examples).
         | 
| 232 | 
            +
             | 
| 233 | 
            +
            👤 Note that <span translate="no">SeleniumBase</span> <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">UC Mode / Stealth Mode has its own ReadMe</a>.
         | 
| 234 | 
            +
             | 
| 235 | 
            +
            ℹ️ Scripts can be called via <code translate="no"><b>python</b></code>, although some <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover & collect tests automatically).
         | 
| 230 236 |  | 
| 231 237 | 
             
            <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which tests login, shopping, and checkout:</p>
         | 
| 232 238 |  | 
| @@ -234,7 +240,7 @@ Requires-Dist: zstandard ==0.22.0 ; extra == 'selenium-wire' | |
| 234 240 | 
             
            pytest my_first_test.py
         | 
| 235 241 | 
             
            ```
         | 
| 236 242 |  | 
| 237 | 
            -
            <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width=" | 
| 243 | 
            +
            <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
         | 
| 238 244 |  | 
| 239 245 | 
             
            > ``pytest`` uses ``--chrome`` by default unless set differently.
         | 
| 240 246 |  | 
| @@ -246,7 +252,7 @@ pytest my_first_test.py | |
| 246 252 | 
             
            pytest test_coffee_cart.py --demo
         | 
| 247 253 | 
             
            ```
         | 
| 248 254 |  | 
| 249 | 
            -
            <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width=" | 
| 255 | 
            +
            <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="520" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
         | 
| 250 256 |  | 
| 251 257 | 
             
            > <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p>
         | 
| 252 258 |  | 
| @@ -260,7 +266,7 @@ pytest test_coffee_cart.py --demo | |
| 260 266 | 
             
            pytest test_demo_site.py
         | 
| 261 267 | 
             
            ```
         | 
| 262 268 |  | 
| 263 | 
            -
            <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width=" | 
| 269 | 
            +
            <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="520" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
         | 
| 264 270 |  | 
| 265 271 | 
             
            > Easy to type, click, select, toggle, drag & drop, and more.
         | 
| 266 272 |  | 
| @@ -268,7 +274,7 @@ pytest test_demo_site.py | |
| 268 274 |  | 
| 269 275 | 
             
            --------
         | 
| 270 276 |  | 
| 271 | 
            -
            <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/ | 
| 277 | 
            +
            <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
         | 
| 272 278 |  | 
| 273 279 | 
             
            <blockquote>
         | 
| 274 280 | 
             
            <p dir="auto"><strong>Explore the README:</strong></p>
         | 
| @@ -563,7 +569,7 @@ cd examples/ | |
| 563 569 | 
             
            pytest my_first_test.py
         | 
| 564 570 | 
             
            ```
         | 
| 565 571 |  | 
| 566 | 
            -
            <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width=" | 
| 572 | 
            +
            <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
         | 
| 567 573 |  | 
| 568 574 | 
             
            <p align="left"><b>Here's the code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
         | 
| 569 575 |  | 
| @@ -1004,14 +1010,14 @@ python -m http.server 1948 | |
| 1004 1010 | 
             
            pytest test_suite.py test_image_saving.py --dashboard --rs --headless
         | 
| 1005 1011 | 
             
            ```
         | 
| 1006 1012 |  | 
| 1007 | 
            -
            <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width=" | 
| 1013 | 
            +
            <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520" />
         | 
| 1008 1014 |  | 
| 1009 1015 | 
             
            --------
         | 
| 1010 1016 |  | 
| 1011 1017 | 
             
            <a id="creating_visual_reports"></a>
         | 
| 1012 1018 | 
             
            <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
         | 
| 1013 1019 |  | 
| 1014 | 
            -
            <h3>🔵  | 
| 1020 | 
            +
            <h3>🔵 <code>pytest</code> HTML Reports:</h3>
         | 
| 1015 1021 |  | 
| 1016 1022 | 
             
            ✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
         | 
| 1017 1023 |  | 
| @@ -1039,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin | |
| 1039 1045 | 
             
            pytest test_suite.py --junit-xml=report.xml
         | 
| 1040 1046 | 
             
            ```
         | 
| 1041 1047 |  | 
| 1042 | 
            -
            <h3>🔵 pynose Reports:</h3>
         | 
| 1048 | 
            +
            <h3>🔵 <code>pynose</code> Reports:</h3>
         | 
| 1043 1049 |  | 
| 1044 1050 | 
             
            The ``--report`` option gives you a fancy report after your test suite completes.
         | 
| 1045 1051 |  | 
| @@ -1051,7 +1057,7 @@ pynose test_suite.py --report | |
| 1051 1057 |  | 
| 1052 1058 | 
             
            (NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
         | 
| 1053 1059 |  | 
| 1054 | 
            -
            <h3>🔵  | 
| 1060 | 
            +
            <h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
         | 
| 1055 1061 |  | 
| 1056 1062 | 
             
            (The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
         | 
| 1057 1063 |  | 
| @@ -1059,7 +1065,7 @@ pynose test_suite.py --report | |
| 1059 1065 | 
             
            behave behave_bdd/features/ -D dashboard -D headless
         | 
| 1060 1066 | 
             
            ```
         | 
| 1061 1067 |  | 
| 1062 | 
            -
            <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width=" | 
| 1068 | 
            +
            <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520">
         | 
| 1063 1069 |  | 
| 1064 1070 | 
             
            You can also use ``--junit`` to get ``.xml`` reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.
         | 
| 1065 1071 |  | 
| @@ -1123,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1 | |
| 1123 1129 | 
             
            ```
         | 
| 1124 1130 |  | 
| 1125 1131 |  | 
| 1126 | 
            -
            <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up  | 
| 1132 | 
            +
            <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
         | 
| 1127 1133 |  | 
| 1128 1134 | 
             
            🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
         | 
| 1129 1135 |  | 
| @@ -1521,11 +1527,13 @@ pytest --reruns=1 --reruns-delay=1 | |
| 1521 1527 |  | 
| 1522 1528 | 
             
            <p>
         | 
| 1523 1529 | 
             
            <div><b>If you see something, say something!</b></div>
         | 
| 1524 | 
            -
            <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> | 
| 1530 | 
            +
            <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
         | 
| 1525 1531 | 
             
            </p>
         | 
| 1526 1532 |  | 
| 1527 1533 | 
             
            <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="266" /></a></p>
         | 
| 1528 1534 |  | 
| 1535 | 
            +
            <a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a>
         | 
| 1536 | 
            +
             | 
| 1529 1537 | 
             
            <p><div>
         | 
| 1530 1538 | 
             
            <span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="68" /></a></span>
         | 
| 1531 1539 | 
             
            <span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="62" /></a></span>
         | 
| @@ -1535,11 +1543,8 @@ pytest --reruns=1 --reruns-delay=1 | |
| 1535 1543 |  | 
| 1536 1544 | 
             
            <p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
         | 
| 1537 1545 |  | 
| 1538 | 
            -
            <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/ | 
| 1546 | 
            +
            <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
         | 
| 1547 | 
            +
            <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
         | 
| 1539 1548 | 
             
            <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
         | 
| 1540 1549 | 
             
            <div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
         | 
| 1541 | 
            -
             | 
| 1542 | 
            -
            --------
         | 
| 1543 | 
            -
             | 
| 1544 | 
            -
            <p><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" alt="SeleniumBase" title="SeleniumBase" width="300" /></a></p>
         | 
| 1545 | 
            -
            <p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a></p>
         | 
| 1550 | 
            +
            <div align="left"><img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="124px" height="28px" alt="Views" /></div>
         | 
| @@ -5,7 +5,7 @@ sbase/steps.py,sha256=bKT_u5bJkKzYWEuAXi9NVVRYYxQRCM1_YJUrNFFRVPY,42865 | |
| 5 5 | 
             
            seleniumbase/ReadMe.md,sha256=4nEdto4d0Ch0Zneg0yAC-RBBdqRqPUP0SCo-ze_XDPM,3612
         | 
| 6 6 | 
             
            seleniumbase/__init__.py,sha256=Mw4ShIWUF2Efjx-JuwUQLWF9nIbxcX-vu9AOGBp32ec,2123
         | 
| 7 7 | 
             
            seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
         | 
| 8 | 
            -
            seleniumbase/__version__.py,sha256= | 
| 8 | 
            +
            seleniumbase/__version__.py,sha256=7gBGyLJegEYspcSDZAO4irrN9kgCPbW_2T4jeHjy0gc,46
         | 
| 9 9 | 
             
            seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 10 10 | 
             
            seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
         | 
| 11 11 | 
             
            seleniumbase/behave/behave_sb.py,sha256=rpSKGufjzKeoiTqsr1HChNu1fY68CMirr5mgff--LHs,56291
         | 
| @@ -70,7 +70,7 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1 | |
| 70 70 | 
             
            seleniumbase/extensions/recorder.zip,sha256=dE3-vt1lsIyMbz3MD0WboizA5KiR3SH2jxAMrC0T_cU,11908
         | 
| 71 71 | 
             
            seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
         | 
| 72 72 | 
             
            seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 73 | 
            -
            seleniumbase/fixtures/base_case.py,sha256= | 
| 73 | 
            +
            seleniumbase/fixtures/base_case.py,sha256=3IkDFD7nEBv6RXdX3XUva98UXQS8Flfl5x-qwXlb9Lk,688938
         | 
| 74 74 | 
             
            seleniumbase/fixtures/constants.py,sha256=Uvr5-Z8ZfiE2-lIqJS1CQ0tkmQ6qJYooCOTo_HMleo4,13348
         | 
| 75 75 | 
             
            seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
         | 
| 76 76 | 
             
            seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
         | 
| @@ -120,7 +120,7 @@ seleniumbase/undetected/dprocess.py,sha256=WWQ_X_-Q7Lfx1m6oxkYHU0eTIc76Jodph4n1Q | |
| 120 120 | 
             
            seleniumbase/undetected/options.py,sha256=SGuz8iqlVPYN7IexNiGauupWF0xP3mqO72-9tgIqeuI,2999
         | 
| 121 121 | 
             
            seleniumbase/undetected/patcher.py,sha256=u8X3uFBCTJ4XcU09AWpbDyPc-dm2LM-YeuciCp5AEdM,10853
         | 
| 122 122 | 
             
            seleniumbase/undetected/reactor.py,sha256=UT1pEnGaTPZT7-0-xKROk9_eWDZueGzSUrCksc22nyA,2883
         | 
| 123 | 
            -
            seleniumbase/undetected/webelement.py,sha256= | 
| 123 | 
            +
            seleniumbase/undetected/webelement.py,sha256=uD_XuJBG1RS42rDyx6br17FNvdgqXzJsntCgYeoWtQc,1356
         | 
| 124 124 | 
             
            seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 125 125 | 
             
            seleniumbase/utilities/selenium_grid/ReadMe.md,sha256=Uqvn4KmhaMY_jrhcsxL2WptCukPq1J3Yz-9WenCXEu0,3599
         | 
| 126 126 | 
             
            seleniumbase/utilities/selenium_grid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| @@ -137,9 +137,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443 | |
| 137 137 | 
             
            seleniumbase/utilities/selenium_ide/ReadMe.md,sha256=hznGeuMpkIimqMiZBW-4goIy2ltW4l8X9kb0YSPUQfE,4483
         | 
| 138 138 | 
             
            seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 139 139 | 
             
            seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
         | 
| 140 | 
            -
            seleniumbase-4.25. | 
| 141 | 
            -
            seleniumbase-4.25. | 
| 142 | 
            -
            seleniumbase-4.25. | 
| 143 | 
            -
            seleniumbase-4.25. | 
| 144 | 
            -
            seleniumbase-4.25. | 
| 145 | 
            -
            seleniumbase-4.25. | 
| 140 | 
            +
            seleniumbase-4.25.3.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
         | 
| 141 | 
            +
            seleniumbase-4.25.3.dist-info/METADATA,sha256=CtIdClnUAWQ2BnA220jcUXfKML1yh6A3oivjgpFYbOM,84811
         | 
| 142 | 
            +
            seleniumbase-4.25.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
         | 
| 143 | 
            +
            seleniumbase-4.25.3.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
         | 
| 144 | 
            +
            seleniumbase-4.25.3.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
         | 
| 145 | 
            +
            seleniumbase-4.25.3.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         |