Skip to content

Commit 326f0fc

Browse files
authored
Merge pull request #1851 from seleniumbase/upgrade-selenium-and-more
Upgrade selenium and more
2 parents d70426b + 6d0199a commit 326f0fc

File tree

15 files changed

+272
-137
lines changed

15 files changed

+272
-137
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@ pytest my_first_test.py --pdb
518518
--proxy-bypass-list=STRING # (";"-separated hosts to bypass, Eg "*.foo.com")
519519
--proxy-pac-url=URL # (Connect to a proxy server using a PAC_URL.pac file.)
520520
--proxy-pac-url=USERNAME:PASSWORD@URL # (Authenticated proxy with PAC URL.)
521+
--proxy-driver # (If a driver download is needed, will use: --proxy=PROXY.)
521522
--multi-proxy # (Allow multiple authenticated proxies when multi-threaded.)
522523
--agent=STRING # (Modify the web browser's User-Agent string.)
523524
--mobile # (Use the mobile device emulator while running tests.)

help_docs/customizing_test_runs.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ pytest my_first_test.py --settings-file=custom_settings.py
124124
--proxy-bypass-list=STRING # (";"-separated hosts to bypass, Eg "*.foo.com")
125125
--proxy-pac-url=URL # (Connect to a proxy server using a PAC_URL.pac file.)
126126
--proxy-pac-url=USERNAME:PASSWORD@URL # (Authenticated proxy with PAC URL.)
127+
--proxy-driver # (If a driver download is needed, will use: --proxy=PROXY.)
127128
--multi-proxy # (Allow multiple authenticated proxies when multi-threaded.)
128129
--agent=STRING # (Modify the web browser's User-Agent string.)
129130
--mobile # (Use the mobile device emulator while running tests.)

help_docs/method_summary.md

Lines changed: 93 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -25,27 +25,30 @@ self.slow_click(selector, by="css selector", timeout=None)
2525
self.double_click(selector, by="css selector", timeout=None)
2626

2727
self.context_click(selector, by="css selector", timeout=None)
28-
# Duplicates: self.right_click(selector, by="css selector", timeout=None)
28+
# Duplicates:
29+
# self.right_click(selector, by="css selector", timeout=None)
2930

3031
self.click_chain(selectors_list, by="css selector", timeout=None, spacing=0)
3132

3233
self.type(selector, text, by="css selector", timeout=None)
33-
# Duplicates: self.update_text(selector, text, by="css selector", timeout=None)
34-
# self.input(selector, text, by="css selector", timeout=None)
35-
# self.fill(selector, text, by="css selector", timeout=None)
36-
# self.write(selector, text, by="css selector", timeout=None)
34+
# Duplicates:
35+
# self.update_text(selector, text, by="css selector", timeout=None)
36+
# self.input(selector, text, by="css selector", timeout=None)
37+
# self.fill(selector, text, by="css selector", timeout=None)
38+
# self.write(selector, text, by="css selector", timeout=None)
3739

3840
self.send_keys(selector, text, by="css selector", timeout=None)
39-
# Duplicates: self.add_text(selector, text, by="css selector", timeout=None)
41+
# Duplicates:
42+
# self.add_text(selector, text, by="css selector", timeout=None)
4043

4144
self.submit(selector, by="css selector")
4245

4346
self.clear(selector, by="css selector", timeout=None)
4447

4548
self.focus(selector, by="css selector", timeout=None)
4649

47-
self.refresh_page()
48-
# Duplicates: self.refresh(), self.reload(), self.reload_page()
50+
self.refresh()
51+
# Duplicates: self.refresh_page(), self.reload_page(), self.reload()
4952

5053
self.get_current_url()
5154

@@ -91,15 +94,18 @@ self.is_link_text_present(link_text)
9194
self.is_partial_link_text_present(link_text)
9295

9396
self.get_link_attribute(link_text, attribute, hard_fail=True)
94-
# Duplicates: self.get_link_text_attribute(link_text, attribute, hard_fail=True)
97+
# Duplicates:
98+
# self.get_link_text_attribute(link_text, attribute, hard_fail=True)
9599

96100
self.get_partial_link_text_attribute(link_text, attribute, hard_fail=True)
97101

98102
self.click_link(link_text, timeout=None)
99-
# Duplicates: self.click_link_text(link_text, timeout=None)
103+
# Duplicates:
104+
# self.click_link_text(link_text, timeout=None)
100105

101106
self.click_partial_link(partial_link_text, timeout=None)
102-
# Duplicates: self.click_partial_link_text(partial_link_text, timeout=None)
107+
# Duplicates:
108+
# self.click_partial_link_text(partial_link_text, timeout=None)
103109

104110
self.get_text(selector, by="css selector", timeout=None)
105111

@@ -111,7 +117,8 @@ self.set_attribute(
111117
selector, attribute, value, by="css selector", timeout=None, scroll=False)
112118

113119
self.set_attributes(selector, attribute, value, by="css selector")
114-
# Duplicates: self.set_attribute_all(selector, attribute, value, by="css selector")
120+
# Duplicates:
121+
# self.set_attribute_all(selector, attribute, value, by="css selector")
115122

116123
self.remove_attribute(selector, attribute, by="css selector", timeout=None)
117124

@@ -144,21 +151,25 @@ self.double_click_with_offset(
144151
selector, x, y, by="css selector", mark=None, timeout=None, center=None)
145152

146153
self.is_checked(selector, by="css selector", timeout=None)
147-
# Duplicates: self.is_selected(selector, by="css selector", timeout=None)
154+
# Duplicates:
155+
# self.is_selected(selector, by="css selector", timeout=None)
148156

149157
self.check_if_unchecked(selector, by="css selector")
150-
# Duplicates: self.select_if_unselected(selector, by="css selector")
158+
# Duplicates:
159+
# self.select_if_unselected(selector, by="css selector")
151160

152161
self.uncheck_if_checked(selector, by="css selector")
153-
# Duplicates: self.unselect_if_selected(selector, by="css selector")
162+
# Duplicates:
163+
# self.unselect_if_selected(selector, by="css selector")
154164

155165
self.is_element_in_an_iframe(selector, by="css selector")
156166

157167
self.switch_to_frame_of_element(selector, by="css selector")
158168

159169
self.hover(selector, by="css selector", timeout=None)
160-
# Duplicates: self.hover_on_element(selector, by="css selector", timeout=None)
161-
# self.hover_over_element(selector, by="css selector", timeout=None)
170+
# Duplicates:
171+
# self.hover_on_element(selector, by="css selector", timeout=None)
172+
# self.hover_over_element(selector, by="css selector", timeout=None)
162173

163174
self.hover_and_click(
164175
hover_selector, click_selector,
@@ -170,9 +181,10 @@ self.hover_and_double_click(
170181
hover_by="css selector", click_by="css selector",
171182
timeout=None)
172183

173-
self.drag_and_drop(drag_selector, drop_selector,
174-
drag_by="css selector", drop_by="css selector",
175-
timeout=None, jquery=False)
184+
self.drag_and_drop(
185+
drag_selector, drop_selector,
186+
drag_by="css selector", drop_by="css selector",
187+
timeout=None, jquery=False)
176188

177189
self.drag_and_drop_with_offset(
178190
selector, x, y, by="css selector", timeout=None)
@@ -409,7 +421,8 @@ self.get_link_status_code(link, allow_redirects=False, timeout=5, verify=False)
409421
self.assert_link_status_code_is_not_404(link)
410422

411423
self.assert_no_404_errors(multithreaded=True, timeout=None)
412-
# Duplicates: self.assert_no_broken_links(multithreaded=True)
424+
# Duplicates:
425+
# self.assert_no_broken_links(multithreaded=True, timeout=None)
413426

414427
self.print_unique_links_with_status_codes()
415428

@@ -466,12 +479,10 @@ self.assert_not_in(first, second, msg=None)
466479
self.assert_raises(*args, **kwargs)
467480

468481
self.wait_for_attribute(
469-
selector, attribute, value=None,
470-
by="css selector", timeout=None)
482+
selector, attribute, value=None, by="css selector", timeout=None)
471483

472484
self.assert_attribute(
473-
selector, attribute, value=None,
474-
by="css selector", timeout=None)
485+
selector, attribute, value=None, by="css selector", timeout=None)
475486

476487
self.assert_title(title)
477488

@@ -498,12 +509,14 @@ self.get_chromedriver_version()
498509
self.get_chromium_driver_version()
499510

500511
self.get_mfa_code(totp_key=None)
501-
# Duplicates: self.get_totp_code(totp_key=None)
502-
# self.get_google_auth_password(totp_key=None)
503-
# self.get_google_auth_code(totp_key=None)
512+
# Duplicates:
513+
# self.get_totp_code(totp_key=None)
514+
# self.get_google_auth_password(totp_key=None)
515+
# self.get_google_auth_code(totp_key=None)
504516

505517
self.enter_mfa_code(selector, totp_key=None, by="css selector", timeout=None)
506-
# Duplicates: self.enter_totp_code(selector, totp_key=None, by="css selector", timeout=None)
518+
# Duplicates:
519+
# self.enter_totp_code(selector, totp_key=None, by="css selector", timeout=None)
507520

508521
self.convert_css_to_xpath(css)
509522

@@ -514,13 +527,16 @@ self.convert_to_css_selector(selector, by)
514527
self.set_value(selector, text, by="css selector", timeout=None, scroll=True)
515528

516529
self.js_update_text(selector, text, by="css selector", timeout=None)
517-
# Duplicates: self.js_type(selector, text, by="css selector", timeout=None)
518-
# self.set_text(selector, text, by="css selector", timeout=None)
530+
# Duplicates:
531+
# self.js_type(selector, text, by="css selector", timeout=None)
532+
# self.set_text(selector, text, by="css selector", timeout=None)
519533

520-
self.set_text_content(selector, text, by="css selector", timeout=None, scroll=False)
534+
self.set_text_content(
535+
selector, text, by="css selector", timeout=None, scroll=False)
521536

522537
self.jquery_update_text(selector, text, by="css selector", timeout=None)
523-
# Duplicates: self.jquery_type(selector, text, by="css selector", timeout=None)
538+
# Duplicates:
539+
# self.jquery_type(selector, text, by="css selector", timeout=None)
524540

525541
self.get_value(selector, by="css selector", timeout=None)
526542

@@ -651,11 +667,13 @@ self.create_introjs_tour(name=None)
651667

652668
self.set_introjs_colors(theme_color=None, hover_color=None)
653669

654-
self.add_tour_step(message, selector=None, name=None,
655-
title=None, theme=None, alignment=None)
670+
self.add_tour_step(
671+
message, selector=None, name=None,
672+
title=None, theme=None, alignment=None)
656673

657674
self.play_tour(name=None, interval=0)
658-
# Duplicates: self.start_tour(name=None, interval=0):
675+
# Duplicates:
676+
# self.start_tour(name=None, interval=0):
659677

660678
self.export_tour(name=None, filename="my_tour.js", url=None)
661679

@@ -685,7 +703,8 @@ self.post_success_message(message, duration=None, pause=True)
685703

686704
self.post_error_message(message, duration=None, pause=True)
687705

688-
self.set_messenger_theme(theme="default", location="default", max_messages="default")
706+
self.set_messenger_theme(
707+
theme="default", location="default", max_messages="default")
689708

690709
############
691710

@@ -700,7 +719,8 @@ self.generate_traffic_chain(pages, loops=1)
700719
############
701720

702721
self.get_element(selector, by="css selector", timeout=None)
703-
# Duplicates: self.wait_for_element_present(selector, by="css selector", timeout=None)
722+
# Duplicates:
723+
# self.wait_for_element_present(selector, by="css selector", timeout=None)
704724

705725
self.wait_for_query_selector(selector, by="css selector", timeout=None)
706726

@@ -711,27 +731,33 @@ self.assert_elements_present(*args, **kwargs)
711731
############
712732

713733
self.find_element(selector, by="css selector", timeout=None)
714-
# Duplicates: self.wait_for_element(selector, by="css selector", timeout=None)
715-
# self.wait_for_element_visible(selector, by="css selector", timeout=None)
734+
# Duplicates:
735+
# self.wait_for_element(selector, by="css selector", timeout=None)
736+
# self.wait_for_element_visible(selector, by="css selector", timeout=None)
716737

717738
self.assert_element(selector, by="css selector", timeout=None)
718-
# Duplicates: self.assert_element_visible(selector, by="css selector", timeout=None)
739+
# Duplicates:
740+
# self.assert_element_visible(selector, by="css selector", timeout=None)
719741

720742
self.assert_elements(*args, **kwargs)
721-
# Duplicates: self.assert_elements_visible(*args, **kwargs)
743+
# Duplicates:
744+
# self.assert_elements_visible(*args, **kwargs)
722745

723746
############
724747

725748
self.find_text(text, selector="html", by="css selector", timeout=None)
726-
# Duplicates: self.wait_for_text(text, selector="html", by="css selector", timeout=None)
727-
# self.wait_for_text_visible(text, selector="html", by="css selector", timeout=None)
749+
# Duplicates:
750+
# self.wait_for_text(text, selector="html", by="css selector", timeout=None)
751+
# self.wait_for_text_visible(text, selector="html", by="css selector", timeout=None)
728752

729753
self.find_exact_text(text, selector="html", by="css selector", timeout=None)
730-
# Duplicates: self.wait_for_exact_text(text, selector="html", by="css selector", timeout=None)
731-
# self.wait_for_exact_text_visible(text, selector="html", by="css selector", timeout=None)
754+
# Duplicates:
755+
# self.wait_for_exact_text(text, selector="html", by="css selector", timeout=None)
756+
# self.wait_for_exact_text_visible(text, selector="html", by="css selector", timeout=None)
732757

733758
self.assert_text(text, selector="html", by="css selector", timeout=None)
734-
# Duplicates: self.assert_text_visible(text, selector="html", by="css selector", timeout=None)
759+
# Duplicates:
760+
# self.assert_text_visible(text, selector="html", by="css selector", timeout=None)
735761

736762
self.assert_exact_text(text, selector="html", by="css selector", timeout=None)
737763

@@ -742,25 +768,29 @@ self.wait_for_link_text_present(link_text, timeout=None)
742768
self.wait_for_partial_link_text_present(link_text, timeout=None)
743769

744770
self.find_link_text(link_text, timeout=None)
745-
# Duplicates: self.wait_for_link_text(link_text, timeout=None)
746-
# self.wait_for_link_text_visible(link_text, timeout=None)
771+
# Duplicates:
772+
# self.wait_for_link_text(link_text, timeout=None)
773+
# self.wait_for_link_text_visible(link_text, timeout=None)
747774

748775
self.assert_link_text(link_text, timeout=None)
749776

750777
############
751778

752779
self.find_partial_link_text(partial_link_text, timeout=None)
753-
# Duplicates: self.wait_for_partial_link_text(partial_link_text, timeout=None)
780+
# Duplicates:
781+
# self.wait_for_partial_link_text(partial_link_text, timeout=None)
754782

755783
self.assert_partial_link_text(partial_link_text, timeout=None)
756784

757785
############
758786

759787
self.wait_for_element_absent(selector, by="css selector", timeout=None)
760-
# Duplicates: self.wait_for_element_not_present(selector, by="css selector")
788+
# Duplicates:
789+
# self.wait_for_element_not_present(selector, by="css selector", timeout=None)
761790

762791
self.assert_element_absent(selector, by="css selector", timeout=None)
763-
# Duplicates: self.assert_element_not_present(selector, by="css selector")
792+
# Duplicates:
793+
# self.assert_element_not_present(selector, by="css selector", timeout=None)
764794

765795
############
766796

@@ -793,13 +823,16 @@ self.assert_attribute_not_present(
793823
############
794824

795825
self.accept_alert(timeout=None)
796-
# Duplicates: self.wait_for_and_accept_alert(timeout=None)
826+
# Duplicates:
827+
# self.wait_for_and_accept_alert(timeout=None)
797828

798829
self.dismiss_alert(timeout=None)
799-
# Duplicates: self.wait_for_and_dismiss_alert(timeout=None)
830+
# Duplicates:
831+
# self.wait_for_and_dismiss_alert(timeout=None)
800832

801833
self.switch_to_alert(timeout=None)
802-
# Duplicates: self.wait_for_and_switch_to_alert(timeout=None)
834+
# Duplicates:
835+
# self.wait_for_and_switch_to_alert(timeout=None)
803836

804837
############
805838

@@ -812,9 +845,11 @@ self.check_window(
812845

813846
############
814847

815-
self.deferred_assert_element(selector, by="css selector", timeout=None, fs=False)
848+
self.deferred_assert_element(
849+
selector, by="css selector", timeout=None, fs=False)
816850
# Duplicates:
817-
# self.delayed_assert_element(selector, by="css selector", timeout=None, fs=False)
851+
# self.delayed_assert_element(
852+
# selector, by="css selector", timeout=None, fs=False)
818853

819854
self.deferred_assert_element_present(
820855
selector, by="css selector", timeout=None, fs=False)
@@ -841,6 +876,7 @@ self.deferred_check_window(
841876
# self.delayed_check_window(
842877
# name="default", level=0, baseline=False,
843878
# check_domain=True, full_diff=False, fs=False)
879+
844880
self.process_deferred_asserts(print_only=False)
845881
# Duplicates: self.process_delayed_asserts(print_only=False)
846882

requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ pip>=23.1;python_version>="3.7"
33
packaging>=21.3;python_version<"3.7"
44
packaging>=23.1;python_version>="3.7"
55
setuptools>=59.6.0;python_version<"3.7"
6-
setuptools>=67.6.1;python_version>="3.7"
6+
setuptools>=67.7.0;python_version>="3.7"
77
keyring>=23.4.1;python_version<"3.8"
88
keyring>=23.13.1;python_version>="3.8"
99
tomli>=1.2.3;python_version<"3.7"
@@ -46,7 +46,7 @@ trio-websocket==0.10.2;python_version>="3.7"
4646
pyopenssl==23.1.1;python_version>="3.7"
4747
wsproto==1.2.0;python_version>="3.7"
4848
selenium==3.141.0;python_version<"3.7"
49-
selenium==4.8.3;python_version>="3.7"
49+
selenium==4.9.0;python_version>="3.7"
5050
msedge-selenium-tools==3.141.3;python_version<"3.7"
5151
cssselect==1.1.0;python_version<"3.7"
5252
cssselect==1.2.0;python_version>="3.7"
@@ -83,7 +83,7 @@ pygments==2.14.0;python_version<"3.7"
8383
pygments==2.15.1;python_version>="3.7"
8484
pyreadline3==3.4.1;platform_system=="Windows"
8585
tabcompleter==1.2.0
86-
pdbp==1.3.0
86+
pdbp==1.3.1
8787
colorama==0.4.5;python_version<"3.7"
8888
colorama==0.4.6;python_version>="3.7"
8989
exceptiongroup==1.1.1;python_version>="3.7"

seleniumbase/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# seleniumbase package
2-
__version__ = "4.13.26"
2+
__version__ = "4.14.0"

0 commit comments

Comments
 (0)