seleniumbase 4.28.0a1__py3-none-any.whl → 4.28.0a3__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.28.0a1"
2
+ __version__ = "4.28.0a3"
@@ -861,16 +861,18 @@ def get_configured_sb(context):
861
861
  and not sb.headless
862
862
  and not sb.headless2
863
863
  and not sb.xvfb
864
- and not sb.undetectable
865
864
  ):
866
- print(
867
- '(Linux uses "-D headless" by default. '
868
- 'To override, use "-D headed" / "-D gui". '
869
- 'For Xvfb mode instead, use "-D xvfb". '
870
- "Or you can hide this info by using"
871
- '"-D headless" / "-D headless2" / "-D uc".)'
872
- )
873
- sb.headless = True
865
+ if not sb.undetectable:
866
+ print(
867
+ '(Linux uses "-D headless" by default. '
868
+ 'To override, use "-D headed" / "-D gui". '
869
+ 'For Xvfb mode instead, use "-D xvfb". '
870
+ "Or you can hide this info by using"
871
+ '"-D headless" / "-D headless2" / "-D uc".)'
872
+ )
873
+ sb.headless = True
874
+ else:
875
+ sb.xvfb = True
874
876
  # Recorder Mode can still optimize scripts in --headless2 mode.
875
877
  if sb.recorder_mode and sb.headless:
876
878
  sb.headless = False
@@ -466,8 +466,8 @@ def uc_open_with_reconnect(driver, url, reconnect_time=None):
466
466
  url = "https://" + url
467
467
  if (url.startswith("http:") or url.startswith("https:")):
468
468
  script = 'window.open("%s","_blank");' % url
469
- js_utils.call_me_later(driver, script, 4)
470
- time.sleep(0.007)
469
+ driver.execute_script(script)
470
+ time.sleep(0.05)
471
471
  driver.close()
472
472
  if reconnect_time == "disconnect":
473
473
  driver.disconnect()
@@ -496,8 +496,8 @@ def uc_open_with_disconnect(driver, url, timeout=None):
496
496
  url = "https://" + url
497
497
  if (url.startswith("http:") or url.startswith("https:")):
498
498
  script = 'window.open("%s","_blank");' % url
499
- js_utils.call_me_later(driver, script, 4)
500
- time.sleep(0.007)
499
+ driver.execute_script(script)
500
+ time.sleep(0.05)
501
501
  driver.close()
502
502
  driver.disconnect()
503
503
  min_timeout = 0.008
@@ -546,7 +546,17 @@ def uc_click(
546
546
  driver.reconnect(reconnect_time)
547
547
 
548
548
 
549
+ def verify_pyautogui_has_a_headed_browser():
550
+ """PyAutoGUI requires a headed browser so that it can
551
+ focus on the correct element when performing actions."""
552
+ if sb_config.headless or sb_config.headless2:
553
+ raise Exception(
554
+ "PyAutoGUI can't be used in headless mode!"
555
+ )
556
+
557
+
549
558
  def install_pyautogui_if_missing():
559
+ verify_pyautogui_has_a_headed_browser()
550
560
  pip_find_lock = fasteners.InterProcessLock(
551
561
  constants.PipInstall.FINDLOCK
552
562
  )
@@ -13718,7 +13718,7 @@ class BaseCase(unittest.TestCase):
13718
13718
  which is the default mode on Linux unless using another arg."""
13719
13719
  if "linux" in sys.platform and (not self.headed or self.xvfb):
13720
13720
  from sbvirtualdisplay import Display
13721
- if self.undetectable:
13721
+ if self.undetectable and not (self.headless or self.headless2):
13722
13722
  import Xlib.display
13723
13723
  try:
13724
13724
  self._xvfb_display = Display(
@@ -15986,7 +15986,7 @@ class BaseCase(unittest.TestCase):
15986
15986
  if self.undetectable:
15987
15987
  try:
15988
15988
  self.driver.window_handles
15989
- except urllib3.exceptions.MaxRetryError:
15989
+ except Exception:
15990
15990
  self.driver.connect()
15991
15991
  self.__slow_mode_pause_if_active()
15992
15992
  has_exception = self.__has_exception()
@@ -1702,16 +1702,18 @@ def pytest_configure(config):
1702
1702
  and not sb_config.headless
1703
1703
  and not sb_config.headless2
1704
1704
  and not sb_config.xvfb
1705
- and not sb_config.undetectable
1706
1705
  ):
1707
- print(
1708
- "(Linux uses --headless by default. "
1709
- "To override, use --headed / --gui. "
1710
- "For Xvfb mode instead, use --xvfb. "
1711
- "Or you can hide this info by using "
1712
- "--headless / --headless2 / --uc.)"
1713
- )
1714
- sb_config.headless = True
1706
+ if not sb_config.undetectable:
1707
+ print(
1708
+ "(Linux uses --headless by default. "
1709
+ "To override, use --headed / --gui. "
1710
+ "For Xvfb mode instead, use --xvfb. "
1711
+ "Or you can hide this info by using "
1712
+ "--headless / --headless2 / --uc.)"
1713
+ )
1714
+ sb_config.headless = True
1715
+ else:
1716
+ sb_config.xvfb = True
1715
1717
 
1716
1718
  # Recorder Mode can still optimize scripts in --headless2 mode.
1717
1719
  if sb_config.recorder_mode and sb_config.headless:
@@ -456,9 +456,11 @@ def SB(
456
456
  and not headless
457
457
  and not headless2
458
458
  and not xvfb
459
- and not undetectable
460
459
  ):
461
- headless = True
460
+ if not undetectable:
461
+ headless = True
462
+ else:
463
+ xvfb = True
462
464
  if headless2 and browser == "firefox":
463
465
  headless2 = False # Only for Chromium browsers
464
466
  headless = True # Firefox has regular headless
@@ -1203,17 +1203,20 @@ class SeleniumBrowser(Plugin):
1203
1203
  and not self.options.headless
1204
1204
  and not self.options.headless2
1205
1205
  and not self.options.xvfb
1206
- and not self.options.undetectable
1207
1206
  ):
1208
- print(
1209
- "(Linux uses --headless by default. "
1210
- "To override, use --headed / --gui. "
1211
- "For Xvfb mode instead, use --xvfb. "
1212
- "Or you can hide this info by using "
1213
- "--headless / --headless2 / --uc.)"
1214
- )
1215
- self.options.headless = True
1216
- test.test.headless = True
1207
+ if not self.options.undetectable:
1208
+ print(
1209
+ "(Linux uses --headless by default. "
1210
+ "To override, use --headed / --gui. "
1211
+ "For Xvfb mode instead, use --xvfb. "
1212
+ "Or you can hide this info by using "
1213
+ "--headless / --headless2 / --uc.)"
1214
+ )
1215
+ self.options.headless = True
1216
+ test.test.headless = True
1217
+ else:
1218
+ self.options.xvfb = True
1219
+ test.test.xvfb = True
1217
1220
  if self.options.use_wire and self.options.undetectable:
1218
1221
  print(
1219
1222
  "\n"
@@ -437,10 +437,12 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
437
437
  self.service.start()
438
438
  except Exception:
439
439
  pass
440
+ time.sleep(0.012)
440
441
  try:
441
442
  self.start_session()
442
443
  except Exception:
443
444
  pass
445
+ time.sleep(0.012)
444
446
 
445
447
  def disconnect(self):
446
448
  """Stops the chromedriver service that runs in the background.
@@ -450,6 +452,7 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
450
452
  self.service.stop()
451
453
  except Exception:
452
454
  pass
455
+ time.sleep(0.012)
453
456
 
454
457
  def connect(self):
455
458
  """Starts the chromedriver service that runs in the background
@@ -459,10 +462,12 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
459
462
  self.service.start()
460
463
  except Exception:
461
464
  pass
465
+ time.sleep(0.012)
462
466
  try:
463
467
  self.start_session()
464
468
  except Exception:
465
469
  pass
470
+ time.sleep(0.012)
466
471
 
467
472
  def start_session(self, capabilities=None):
468
473
  if not capabilities:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.28.0a1
3
+ Version: 4.28.0a3
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
@@ -5,10 +5,10 @@ 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=dgq30q6wGO2fJOVYemxC5hLxzv-of-MRn5P1YarBq5k,2263
7
7
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
8
- seleniumbase/__version__.py,sha256=ujIHzFwkHpsOVTgMhbVGvbdf0C1eauuucn3gmP33JkQ,48
8
+ seleniumbase/__version__.py,sha256=0eVNLuFCugFzKCUVv1KmmV-DJcs0g2fHuUZirq7dkPg,48
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
- seleniumbase/behave/behave_sb.py,sha256=y39v-cKYCwaYhkfTTaJef1sav2c2uHLQtJ1jGT53XIg,56333
11
+ seleniumbase/behave/behave_sb.py,sha256=q4uYZixZBf7VYWnQnEk2weTcyMy1X1faR3vyYvUzDiA,56406
12
12
  seleniumbase/behave/steps.py,sha256=8-N-NB2tnDsxaP4LSg-uSBgbwZYMS6ZEL1oggO1PCoU,390
13
13
  seleniumbase/common/ReadMe.md,sha256=PwQsRSPRCXejL-fg4YyDzED_Yr6e7ddmGu3g2OcDrcQ,3286
14
14
  seleniumbase/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -40,7 +40,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=yo641b_OdSE0GUauOyxk-QrNeIjYzbRY
40
40
  seleniumbase/console_scripts/sb_recorder.py,sha256=UQQhnAR18dbcC7ToDvj6TM2PIG5qBrNaekaM6kSK_E8,10970
41
41
  seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
43
- seleniumbase/core/browser_launcher.py,sha256=v7IHUQWBgJ1DtlArrbZuynKEAnRNKcf99fIWCZfpDgc,176018
43
+ seleniumbase/core/browser_launcher.py,sha256=pDkIoq2Fz5mS95uYVs0JXrsTh--qGjFg639dDap_qiY,176343
44
44
  seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
45
45
  seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
46
46
  seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
@@ -70,7 +70,7 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
70
70
  seleniumbase/extensions/recorder.zip,sha256=OOyzF-Ize2cSRu1CqhzSAq5vusI9hqLLd2OIApUHesI,11918
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=YG8AL3WveUHMgtboVWQl3gP2z6X4k-of8dI-TrI9p-U,698076
73
+ seleniumbase/fixtures/base_case.py,sha256=X3EwrOuPIVqPbtmhW8CtoGE3KqmZ5PyMUOxlQBmGIW8,698095
74
74
  seleniumbase/fixtures/constants.py,sha256=TapuGLdERtvZPGMblVXkNGybr8tj8FMtN3sbJ3ygyoc,13569
75
75
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
76
76
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
@@ -94,11 +94,11 @@ seleniumbase/plugins/basic_test_info.py,sha256=8ov6n417gPbqqvrlT4zrch7l2XcRt-GF2
94
94
  seleniumbase/plugins/db_reporting_plugin.py,sha256=En09qUCoojrk9-vbcnsoHdSELoGmag2GDIyu3jTiJas,7331
95
95
  seleniumbase/plugins/driver_manager.py,sha256=WScJYz-5UxUEq3LfICmq0tFe_mglWhG9x28KCq4SSUE,22775
96
96
  seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
97
- seleniumbase/plugins/pytest_plugin.py,sha256=sozKi1qFfE2DjSXVXeEAJprUae636cNBaGdqrB1vQPk,94919
97
+ seleniumbase/plugins/pytest_plugin.py,sha256=ObITovmkwpAcwXNxF6qTHRzERPA7_ntAmbxPRTefj1M,94999
98
98
  seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
99
- seleniumbase/plugins/sb_manager.py,sha256=o-WB7nhZiCNfXxCXHFL_1SmuqKTTHgQo74H0CLGmu_w,40656
99
+ seleniumbase/plugins/sb_manager.py,sha256=oDKlGtCWyoaDp3qdq-rZFWU7NfBkk5odkG9e3ZqlBug,40698
100
100
  seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
101
- seleniumbase/plugins/selenium_plugin.py,sha256=Or8d5KxFuAIMtA3C-legOV1Njxa58XuIeIJjiP__rQo,54989
101
+ seleniumbase/plugins/selenium_plugin.py,sha256=FESjalW8mdboLB_B59j8EeY6IvmEIbp_BY9cPTxJsM4,55122
102
102
  seleniumbase/resources/ReadMe.md,sha256=uminnO5_Uv-UZDKcc9a9s9kxisaYUps-H98Fp5PJcaU,2124
103
103
  seleniumbase/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
104
  seleniumbase/resources/favicon.ico,sha256=QPf_YK0QXa_--C4_CH-odh6OTHRQ9k-4O6WcCpXSdwM,1150
@@ -114,7 +114,7 @@ seleniumbase/translate/portuguese.py,sha256=x3P4qxp56UiI41GoaL7JbUvFRYsgXU1EKjTg
114
114
  seleniumbase/translate/russian.py,sha256=TyN9n0b4GRWDEYnHRGw1rfNAscdDmP3F3Y3aySM3C7s,27978
115
115
  seleniumbase/translate/spanish.py,sha256=hh3xgW1Pq122SHYVvJAxFaXhFrjniOVncVbJbfWqOUM,25528
116
116
  seleniumbase/translate/translator.py,sha256=yfoa4tCAbaD0W3gcbjsoGpNZjJdTY246W9uGuTlh4bw,49436
117
- seleniumbase/undetected/__init__.py,sha256=sLPz6SlHbrUkaZ6ZEyt8l3myZNla6aultpaQDrjmM5s,21927
117
+ seleniumbase/undetected/__init__.py,sha256=-4JWNgiUkuaCZWlB9pea7MiVZWiNJs7SICxu4yGD4s8,22074
118
118
  seleniumbase/undetected/cdp.py,sha256=EralLQm8diG5i6EoHFXHIQEc7Uf7PWtzyPH_upS5RIs,4047
119
119
  seleniumbase/undetected/dprocess.py,sha256=WWQ_X_-Q7Lfx1m6oxkYHU0eTIc76Jodph4n1QnK4GEE,1706
120
120
  seleniumbase/undetected/options.py,sha256=SGuz8iqlVPYN7IexNiGauupWF0xP3mqO72-9tgIqeuI,2999
@@ -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.28.0a1.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
- seleniumbase-4.28.0a1.dist-info/METADATA,sha256=I2yq7nlAPtFpdZeSIewCZ_gFUu-lTeXviPRams7aXyE,85546
142
- seleniumbase-4.28.0a1.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
143
- seleniumbase-4.28.0a1.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.28.0a1.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.28.0a1.dist-info/RECORD,,
140
+ seleniumbase-4.28.0a3.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
+ seleniumbase-4.28.0a3.dist-info/METADATA,sha256=53UFjAMxEGijQjBslQ9UjarI2hbolSXES1AzUfM7Fi8,85546
142
+ seleniumbase-4.28.0a3.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
143
+ seleniumbase-4.28.0a3.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
+ seleniumbase-4.28.0a3.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
+ seleniumbase-4.28.0a3.dist-info/RECORD,,