seleniumbase 4.25.2__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 +1 -1
- {seleniumbase-4.25.2.dist-info → seleniumbase-4.25.3.dist-info}/METADATA +11 -11
- {seleniumbase-4.25.2.dist-info → seleniumbase-4.25.3.dist-info}/RECORD +9 -9
- {seleniumbase-4.25.2.dist-info → seleniumbase-4.25.3.dist-info}/LICENSE +0 -0
- {seleniumbase-4.25.2.dist-info → seleniumbase-4.25.3.dist-info}/WHEEL +0 -0
- {seleniumbase-4.25.2.dist-info → seleniumbase-4.25.3.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.25.2.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):
|
@@ -14,7 +14,7 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
|
14
14
|
):
|
15
15
|
if driver and selector and by:
|
16
16
|
delayed_click = False
|
17
|
-
if tag_name
|
17
|
+
if tag_name in ["span", "button", "div", "a"]:
|
18
18
|
delayed_click = True
|
19
19
|
if delayed_click and ":contains" not in selector:
|
20
20
|
selector = js_utils.convert_to_css_selector(selector, by)
|
@@ -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
|
@@ -114,12 +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
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.
|
122
|
+
Requires-Dist: execnet ==2.1.1 ; python_version >= "3.8"
|
123
123
|
Requires-Dist: pluggy ==1.4.0 ; python_version >= "3.8"
|
124
124
|
Requires-Dist: pytest ==8.1.1 ; python_version >= "3.8"
|
125
125
|
Requires-Dist: pytest-metadata ==3.1.1 ; python_version >= "3.8"
|
@@ -181,7 +181,7 @@ Requires-Dist: zstandard ==0.22.0 ; extra == 'selenium-wire'
|
|
181
181
|
|
182
182
|
<h1>SeleniumBase</h1>
|
183
183
|
|
184
|
-
<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>
|
185
185
|
|
186
186
|
|
187
187
|
<p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
|
@@ -274,7 +274,7 @@ pytest test_demo_site.py
|
|
274
274
|
|
275
275
|
--------
|
276
276
|
|
277
|
-
<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>
|
278
278
|
|
279
279
|
<blockquote>
|
280
280
|
<p dir="auto"><strong>Explore the README:</strong></p>
|
@@ -1017,7 +1017,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
|
|
1017
1017
|
<a id="creating_visual_reports"></a>
|
1018
1018
|
<h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
|
1019
1019
|
|
1020
|
-
<h3>🔵
|
1020
|
+
<h3>🔵 <code>pytest</code> HTML Reports:</h3>
|
1021
1021
|
|
1022
1022
|
✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
|
1023
1023
|
|
@@ -1045,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
|
|
1045
1045
|
pytest test_suite.py --junit-xml=report.xml
|
1046
1046
|
```
|
1047
1047
|
|
1048
|
-
<h3>🔵 pynose Reports:</h3>
|
1048
|
+
<h3>🔵 <code>pynose</code> Reports:</h3>
|
1049
1049
|
|
1050
1050
|
The ``--report`` option gives you a fancy report after your test suite completes.
|
1051
1051
|
|
@@ -1057,7 +1057,7 @@ pynose test_suite.py --report
|
|
1057
1057
|
|
1058
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.)
|
1059
1059
|
|
1060
|
-
<h3>🔵
|
1060
|
+
<h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
|
1061
1061
|
|
1062
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.)
|
1063
1063
|
|
@@ -1129,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
|
|
1129
1129
|
```
|
1130
1130
|
|
1131
1131
|
|
1132
|
-
<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>
|
1133
1133
|
|
1134
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.
|
1135
1135
|
|
@@ -1543,7 +1543,7 @@ pytest --reruns=1 --reruns-delay=1
|
|
1543
1543
|
|
1544
1544
|
<p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
|
1545
1545
|
|
1546
|
-
<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
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>
|
1548
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>
|
1549
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>
|
@@ -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
|