seleniumbase 4.33.0__py3-none-any.whl → 4.33.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.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.33.0"
2
+ __version__ = "4.33.1"
@@ -612,6 +612,7 @@ def uc_open_with_cdp_mode(driver, url=None):
612
612
  cdp.save_cookies = CDPM.save_cookies
613
613
  cdp.load_cookies = CDPM.load_cookies
614
614
  cdp.clear_cookies = CDPM.clear_cookies
615
+ cdp.sleep = CDPM.sleep
615
616
  cdp.bring_active_window_to_front = CDPM.bring_active_window_to_front
616
617
  cdp.bring_to_front = CDPM.bring_active_window_to_front
617
618
  cdp.get_active_element = CDPM.get_active_element
@@ -684,6 +685,7 @@ def uc_open_with_cdp_mode(driver, url=None):
684
685
  cdp.select_if_unselected = CDPM.select_if_unselected
685
686
  cdp.unselect_if_selected = CDPM.unselect_if_selected
686
687
  cdp.is_checked = CDPM.is_checked
688
+ cdp.is_selected = CDPM.is_selected
687
689
  cdp.is_element_present = CDPM.is_element_present
688
690
  cdp.is_element_visible = CDPM.is_element_visible
689
691
  cdp.wait_for_element_visible = CDPM.wait_for_element_visible
@@ -699,6 +701,8 @@ def uc_open_with_cdp_mode(driver, url=None):
699
701
  cdp.assert_url_contains = CDPM.assert_url_contains
700
702
  cdp.assert_text = CDPM.assert_text
701
703
  cdp.assert_exact_text = CDPM.assert_exact_text
704
+ cdp.assert_true = CDPM.assert_true
705
+ cdp.assert_false = CDPM.assert_false
702
706
  cdp.scroll_into_view = CDPM.scroll_into_view
703
707
  cdp.scroll_to_y = CDPM.scroll_to_y
704
708
  cdp.scroll_to_top = CDPM.scroll_to_top
@@ -1167,7 +1171,12 @@ def _uc_gui_click_captcha(
1167
1171
  frame = "%s div" % frame
1168
1172
  elif (
1169
1173
  driver.is_element_present('[name*="cf-turnstile-"]')
1170
- and driver.is_element_present('[class*=spacer] + div div')
1174
+ and driver.is_element_present("#challenge-form div > div")
1175
+ ):
1176
+ frame = "#challenge-form div > div"
1177
+ elif (
1178
+ driver.is_element_present('[name*="cf-turnstile-"]')
1179
+ and driver.is_element_present("[class*=spacer] + div div")
1171
1180
  ):
1172
1181
  frame = '[class*=spacer] + div div'
1173
1182
  elif (
@@ -1240,8 +1249,8 @@ def _uc_gui_click_captcha(
1240
1249
  return
1241
1250
  try:
1242
1251
  if ctype == "g_rc" and not driver.is_connected():
1243
- x = (i_x + 32) * width_ratio
1244
- y = (i_y + 34) * width_ratio
1252
+ x = (i_x + 29) * width_ratio
1253
+ y = (i_y + 35) * width_ratio
1245
1254
  elif visible_iframe:
1246
1255
  selector = "span"
1247
1256
  if ctype == "g_rc":
@@ -1256,8 +1265,8 @@ def _uc_gui_click_captcha(
1256
1265
  y = i_y + element.rect["y"] + (element.rect["height"] / 2.0)
1257
1266
  y += 0.5
1258
1267
  else:
1259
- x = (i_x + 34) * width_ratio
1260
- y = (i_y + 34) * width_ratio
1268
+ x = (i_x + 32) * width_ratio
1269
+ y = (i_y + 32) * width_ratio
1261
1270
  if driver.is_connected():
1262
1271
  driver.switch_to.default_content()
1263
1272
  except Exception:
@@ -1497,6 +1506,7 @@ def _uc_gui_handle_captcha_(driver, frame="iframe", ctype=None):
1497
1506
  tab_count += 1
1498
1507
  time.sleep(0.027)
1499
1508
  active_element_css = js_utils.get_active_element_css(driver)
1509
+ print(active_element_css)
1500
1510
  if (
1501
1511
  active_element_css.startswith(selector)
1502
1512
  or active_element_css.endswith(" > div" * 2)
@@ -1514,7 +1524,10 @@ def _uc_gui_handle_captcha_(driver, frame="iframe", ctype=None):
1514
1524
  except Exception:
1515
1525
  return
1516
1526
  if (
1517
- driver.is_element_present(".footer .clearfix .ray-id")
1527
+ (
1528
+ driver.is_element_present(".footer .clearfix .ray-id")
1529
+ or driver.is_element_present("script[data-cf-beacon]")
1530
+ )
1518
1531
  and hasattr(sb_config, "_saved_cf_tab_count")
1519
1532
  and sb_config._saved_cf_tab_count
1520
1533
  ):
@@ -1681,6 +1681,14 @@ class CDPMethods():
1681
1681
  % (text, element.text_all, selector)
1682
1682
  )
1683
1683
 
1684
+ def assert_true(self, expression):
1685
+ if not expression:
1686
+ raise AssertionError("%s is not true")
1687
+
1688
+ def assert_false(self, expression):
1689
+ if expression:
1690
+ raise AssertionError("%s is not false")
1691
+
1684
1692
  def scroll_into_view(self, selector):
1685
1693
  self.find_element(selector).scroll_into_view()
1686
1694
  self.loop.run_until_complete(self.page.wait())
@@ -6,8 +6,9 @@ import http.cookiejar
6
6
  import json
7
7
  import logging
8
8
  import os
9
- import pickle
10
9
  import pathlib
10
+ import pickle
11
+ import re
11
12
  import shutil
12
13
  import urllib.parse
13
14
  import urllib.request
@@ -644,7 +645,7 @@ class CookieJar:
644
645
  """
645
646
  connection = None
646
647
  for _tab in self._browser.tabs:
647
- if _tab.closed:
648
+ if hasattr(_tab, "closed") and _tab.closed:
648
649
  continue
649
650
  connection = _tab
650
651
  break
@@ -674,7 +675,7 @@ class CookieJar:
674
675
  """
675
676
  connection = None
676
677
  for _tab in self._browser.tabs:
677
- if _tab.closed:
678
+ if hasattr(_tab, "closed") and _tab.closed:
678
679
  continue
679
680
  connection = _tab
680
681
  break
@@ -698,13 +699,11 @@ class CookieJar:
698
699
  - Contain "nowsecure"
699
700
  :type pattern: str
700
701
  """
701
- import re
702
-
703
702
  pattern = re.compile(pattern)
704
703
  save_path = pathlib.Path(file).resolve()
705
704
  connection = None
706
705
  for _tab in self._browser.tabs:
707
- if _tab.closed:
706
+ if hasattr(_tab, "closed") and _tab.closed:
708
707
  continue
709
708
  connection = _tab
710
709
  break
@@ -746,15 +745,13 @@ class CookieJar:
746
745
  - Contain "nowsecure"
747
746
  :type pattern: str
748
747
  """
749
- import re
750
-
751
748
  pattern = re.compile(pattern)
752
749
  save_path = pathlib.Path(file).resolve()
753
750
  cookies = pickle.load(save_path.open("r+b"))
754
751
  included_cookies = []
755
752
  connection = None
756
753
  for _tab in self._browser.tabs:
757
- if _tab.closed:
754
+ if hasattr(_tab, "closed") and _tab.closed:
758
755
  continue
759
756
  connection = _tab
760
757
  break
@@ -779,7 +776,7 @@ class CookieJar:
779
776
  """
780
777
  connection = None
781
778
  for _tab in self._browser.tabs:
782
- if _tab.closed:
779
+ if hasattr(_tab, "closed") and _tab.closed:
783
780
  continue
784
781
  connection = _tab
785
782
  break
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.33.0
3
+ Version: 4.33.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
@@ -146,7 +146,7 @@ Requires-Dist: mss==9.0.2; extra == "mss"
146
146
  Provides-Extra: pdfminer
147
147
  Requires-Dist: pdfminer.six==20240706; extra == "pdfminer"
148
148
  Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
149
- Requires-Dist: cryptography==43.0.3; python_version >= "3.9" and extra == "pdfminer"
149
+ Requires-Dist: cryptography==44.0.0; python_version >= "3.9" and extra == "pdfminer"
150
150
  Requires-Dist: cffi==1.17.1; extra == "pdfminer"
151
151
  Requires-Dist: pycparser==2.22; extra == "pdfminer"
152
152
  Provides-Extra: pillow
@@ -3,7 +3,7 @@ sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
3
3
  sbase/steps.py,sha256=_WvAjydKqZfTdnZW9LPKkRty-g-lfdUPmLqnZj6ulcs,43013
4
4
  seleniumbase/__init__.py,sha256=OtJh8nGKL4xtZpw8KPqmn7Q6R-86t4cWUDyVF5MbMTo,2398
5
5
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
6
- seleniumbase/__version__.py,sha256=QWcZHZxKcoTjnqMUASmFQCA91tzSUF4vP43yJf9hNSk,46
6
+ seleniumbase/__version__.py,sha256=WinMHufazbTH89-Ykuh9u7jq8VeYFiM_Km5byqgexBc,46
7
7
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
9
9
  seleniumbase/behave/behave_sb.py,sha256=-hza7Nx2U41mSObYiPMi48v3JlPh3sJO3yzP0kqZ1Gk,59174
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
36
36
  seleniumbase/console_scripts/sb_recorder.py,sha256=fnHb5-kh11Hit-E9Ha-e4QXzqLcZvtij6mb5qNd4B1Q,11032
37
37
  seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
39
- seleniumbase/core/browser_launcher.py,sha256=GT7S15R_nxJJUesB693ST2F0kUMNn4FXrwiNBoXAKpE,220293
39
+ seleniumbase/core/browser_launcher.py,sha256=TbUR5NkE4r34SFe5t_2R2uV8Br6NG8fihZOAZ2uZy3s,220834
40
40
  seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
41
41
  seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
42
42
  seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
@@ -50,7 +50,7 @@ seleniumbase/core/proxy_helper.py,sha256=cXhu8ErK9Vjdm82RMaQj7hEq_yUWizSp6LyiD50
50
50
  seleniumbase/core/recorder_helper.py,sha256=fNGjbapXmEsht54x1o6Igk198QdnPxDDnjUOzQxNhNQ,25055
51
51
  seleniumbase/core/report_helper.py,sha256=AIl6Qava2yW1uSzbLpJBlPlYDz0KE-rVhogh8hsGWBo,12201
52
52
  seleniumbase/core/s3_manager.py,sha256=bkeI8I4y19ebWuQG1oEZV5qJbotC6eN8vin31OCNWJk,3521
53
- seleniumbase/core/sb_cdp.py,sha256=4H91tZw77A8capl7wsRjzkpD62H018AmzKSQpmxXp6k,66948
53
+ seleniumbase/core/sb_cdp.py,sha256=tS1eVtNEaNy12lqWNREFptRm_ylOxqQIwICvGwojwuk,67182
54
54
  seleniumbase/core/sb_driver.py,sha256=NGa4adi8OAi2WFtFkEguXg3JCd1p-JuZweIpGNifEfU,13488
55
55
  seleniumbase/core/session_helper.py,sha256=s9zD3PVZEWVzG2h81cCUskbNWLfdjC_LwwQjKptHCak,558
56
56
  seleniumbase/core/settings_parser.py,sha256=KokVXpCiGZhJ-D4Bo-hizPz5r-iefzWoiTANu9zNaq4,7504
@@ -115,7 +115,7 @@ seleniumbase/undetected/reactor.py,sha256=NropaXcO54pzmDq6quR27qPJxab6636H7LRAaq
115
115
  seleniumbase/undetected/webelement.py,sha256=_s6evgUkdWJpwOnzX4qR9i796PoVbz3txlzHlOBJ4BE,1370
116
116
  seleniumbase/undetected/cdp_driver/__init__.py,sha256=c0TjMwPfVFyoqYOJ7PQ-Jln_L_dpN3ebHyaD-juQoM0,64
117
117
  seleniumbase/undetected/cdp_driver/_contradict.py,sha256=6thDYeoEGiC7Q3tXLgoD_AhxecCFnATzBSjNympyRHA,3184
118
- seleniumbase/undetected/cdp_driver/browser.py,sha256=mGmpWuR206yYJoBPTNslru8CbEpQuvvIHdjBylSkoKg,30020
118
+ seleniumbase/undetected/cdp_driver/browser.py,sha256=n8GYspU7b0pfBT4AqhqY6IdGVOZ1FC4wJ5emIOl-khQ,30129
119
119
  seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=YhtD2Tm6PLIy9VKbgk8lHdGniS3mObyX4yAC1aG0TgQ,16733
120
120
  seleniumbase/undetected/cdp_driver/config.py,sha256=Rjvde7V-XJ0ihZdTmOmHEVWSuDWm3SprQ3njg8SN3Go,12087
121
121
  seleniumbase/undetected/cdp_driver/connection.py,sha256=sOTUGjbUqKA2hPvDcRCdqw1VQjVGJs7mbgVvzS7ldtE,23360
@@ -135,9 +135,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPr
135
135
  seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
136
136
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
137
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
138
- seleniumbase-4.33.0.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
139
- seleniumbase-4.33.0.dist-info/METADATA,sha256=vubW0bw2Oh3djh-PyVRyNtMR0qOqUWSzYo05-T_IE5w,86554
140
- seleniumbase-4.33.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
141
- seleniumbase-4.33.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
- seleniumbase-4.33.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
- seleniumbase-4.33.0.dist-info/RECORD,,
138
+ seleniumbase-4.33.1.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
139
+ seleniumbase-4.33.1.dist-info/METADATA,sha256=Enu7xujlzc9XwoPVPstRzT_tCtGllzWM6NxKTLIkLbM,86554
140
+ seleniumbase-4.33.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
141
+ seleniumbase-4.33.1.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
+ seleniumbase-4.33.1.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
+ seleniumbase-4.33.1.dist-info/RECORD,,