seleniumbase 4.25.2__py3-none-any.whl → 4.25.4__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.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.25.2"
2
+ __version__ = "4.25.4"
@@ -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 == "span" or tag_name == "button" or tag_name == "div":
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.2
3
+ Version: 4.25.4
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.6
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
@@ -112,14 +112,14 @@ Requires-Dist: pytest-rerunfailures ==13.0 ; python_version < "3.8"
112
112
  Requires-Dist: soupsieve ==2.4.1 ; python_version < "3.8"
113
113
  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
- Requires-Dist: setuptools >=69.2.0 ; python_version >= "3.8"
115
+ Requires-Dist: setuptools >=69.5.1 ; python_version >= "3.8"
116
116
  Requires-Dist: wheel >=0.43.0 ; python_version >= "3.8"
117
- Requires-Dist: filelock >=3.13.3 ; python_version >= "3.8"
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.0 ; python_version >= "3.8"
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/super_logo_i.png" alt="SeleniumBase" title="SeleniumBase" width="400" /></a></p>
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/super_logo_sb2.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
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>🔵 Pytest Reports:</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>🔵 Behave Dashboard & Reports:</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 / Pop Up Alerts:</h3>
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/super_logo_sb.png" title="SeleniumBase" width="240" /></a></div>
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=CiaJysHLIU0MrZTrLtg43WBskbxNWeWKIqMlkEt1lNg,46
8
+ seleniumbase/__version__.py,sha256=vJloTYiR5NRU8XxtVHej9BA9nUGC6YPDPnW1AXKq-Dg,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=bLh4Q9SEVwY0pkNdxa5BFTjIT-v7TUCpLCUblofcTdg,688014
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=k0usjlaiYyhdrmoopSCJBrsrKNx4csZT9bqfI30Hckc,1377
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.2.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
- seleniumbase-4.25.2.dist-info/METADATA,sha256=iarPktpbZ60NMvqazzU2WLO_GNKqAk2VcEmBttR4gA0,84773
142
- seleniumbase-4.25.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
143
- seleniumbase-4.25.2.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.25.2.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.25.2.dist-info/RECORD,,
140
+ seleniumbase-4.25.4.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
+ seleniumbase-4.25.4.dist-info/METADATA,sha256=sfCUHskCg71CyQRRLg9whclDQgjyHhfax0xT9wRfT38,84811
142
+ seleniumbase-4.25.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
143
+ seleniumbase-4.25.4.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
+ seleniumbase-4.25.4.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
+ seleniumbase-4.25.4.dist-info/RECORD,,