Skip to content

Commit 5d9fdc0

Browse files
authored
Merge pull request #2538 from seleniumbase/refresh-dependencies-and-examples
Refresh dependencies and examples
2 parents edeb2db + f21e7fb commit 5d9fdc0

20 files changed

+73
-94
lines changed

examples/boilerplates/samples/google_test.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class GoogleTests(BaseCase):
1111
def test_google_dot_com(self):
1212
if self.headless and self._multithreaded:
1313
self.open_if_not_url("about:blank")
14-
print("Skipping test in headless multi-threaded mode.")
14+
print("\n Skipping test in headless multi-threaded mode.")
1515
self.skip("Skipping test in headless multi-threaded mode.")
1616
self.open("https://google.com/ncr")
1717
self.assert_title_contains("Google")

examples/boilerplates/samples/test_page_objects.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class MyTests(BaseCase):
3636
def test_page_objects(self):
3737
if self.headless and self._multithreaded:
3838
self.open_if_not_url("about:blank")
39-
print("Skipping test in headless multi-threaded mode.")
39+
print("\n Skipping test in headless multi-threaded mode.")
4040
self.skip("Skipping test in headless multi-threaded mode.")
4141
search_term = "SeleniumBase.io Docs"
4242
expected_text = "SeleniumBase"

examples/github_test.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ class GitHubTests(BaseCase):
66
def test_github(self):
77
if self.headless or self.page_load_strategy == "none":
88
self.open_if_not_url("about:blank")
9-
message = "Unsupported mode for this test."
10-
print("\n " + message)
11-
self.skip(message)
9+
print("\n Unsupported mode for this test.")
10+
self.skip("Unsupported mode for this test.")
1211
self.open("https://github.com/seleniumbase/SeleniumBase")
1312
self.click_if_visible('[data-action="click:signup-prompt#dismiss"]')
1413
self.highlight("div.Layout-main")

examples/proxy_test.py

+3-11
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,10 @@
55

66
class ProxyTests(BaseCase):
77
def test_proxy(self):
8-
if self.headless:
8+
if self.headless or self.recorder_mode or self.browser == "safari":
99
self.open_if_not_url("about:blank")
10-
print("Skipping test in Headless Mode.")
11-
self.skip("Skipping test in Headless Mode.")
12-
elif self.recorder_mode:
13-
self.open_if_not_url("about:blank")
14-
print("Skipping test in Recorder Mode.")
15-
self.skip("Skipping test in Recorder Mode.")
16-
elif self.browser == "safari":
17-
self.open_if_not_url("about:blank")
18-
print("Skipping test for using Safari.")
19-
self.skip("Skipping test for using Safari.")
10+
print("\n Unsupported mode for this test.")
11+
self.skip("Unsupported mode for this test.")
2012
settings.SKIP_JS_WAITS = True
2113
if not self.page_load_strategy == "none" and not self.undetectable:
2214
# This page takes too long to load otherwise

examples/rate_limiting_test.py

+3-7
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,10 @@ def print_item(self, item):
1010
print(item)
1111

1212
def test_rate_limited_printing(self):
13-
if self._multithreaded:
13+
if self._multithreaded or self.recorder_mode:
1414
self.open_if_not_url("about:blank")
15-
print("Skipping test in multi-threaded mode.")
16-
self.skip("Skipping test in multi-threaded mode.")
17-
if self.recorder_mode:
18-
self.open_if_not_url("about:blank")
19-
print("Skipping test in Recorder Mode.")
20-
self.skip("Skipping test in Recorder Mode.")
15+
print("\n Unsupported mode for this test.")
16+
self.skip("Unsupported mode for this test.")
2117
message = "Running rate-limited print() on the command line"
2218
self.open("data:text/html,<p>%s</p>" % message)
2319
print("\n%s:" % message)

examples/shadow_root_test.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,10 @@
66

77
class ShadowRootTest(BaseCase):
88
def test_shadow_root(self):
9-
if self.recorder_mode:
9+
if self.recorder_mode or not self.is_chromium():
1010
self.open_if_not_url("about:blank")
11-
message = "Skipping test in Recorder Mode."
12-
print(message)
13-
self.skip(message)
14-
elif not self.is_chromium():
15-
self.open_if_not_url("about:blank")
16-
message = "This test is only for Chromium browsers!"
17-
print(message)
18-
self.skip(message)
11+
print("\n Unsupported mode for this test.")
12+
self.skip("Unsupported mode for this test.")
1913
self.open("https://seleniumbase.io/other/shadow_dom")
2014
print("")
2115
self.click("button.tab_1")

examples/test_apple_site.py

+6-12
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,14 @@ def test_apple_developer_site_webdriver_instructions(self):
88
self.demo_mode = True
99
self.demo_sleep = 0.5
1010
self.message_duration = 2.0
11+
if self.is_chromium() and not self.disable_csp:
12+
self.get_new_driver(browser=self.browser, disable_csp=True)
1113
if self.headless:
12-
if self._multithreaded:
14+
if self._multithreaded or self.undetectable or self.recorder_mode:
1315
self.open_if_not_url("about:blank")
14-
print("Skipping test in headless multi-threaded mode.")
15-
self.skip("Skipping test in headless multi-threaded mode.")
16-
elif self.undetectable:
17-
self.open_if_not_url("about:blank")
18-
print("Skipping test in headless undetectable mode.")
19-
self.skip("Skipping test in headless undetectable mode.")
20-
elif self.recorder_mode:
21-
self.open_if_not_url("about:blank")
22-
print("Skipping test in headless Recorder Mode.")
23-
self.skip("Skipping test in headless Recorder Mode.")
24-
elif self.browser == "chrome" or self.browser == "edge":
16+
print("\n Unsupported mode for this test.")
17+
self.skip("Unsupported mode for this test.")
18+
elif self.is_chromium():
2519
self.get_new_driver(browser=self.browser, headless2=True)
2620
self.open("https://developer.apple.com/search/")
2721
title = "Testing with WebDriver in Safari"

examples/test_canvas.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def test_click_with_offset(self):
3737
self.open("https://seleniumbase.io/canvas/")
3838
if self.undetectable:
3939
self.open_if_not_url("about:blank")
40-
print("Skip this test in undetectable mode.")
40+
print("\n Skip this test in undetectable mode.")
4141
self.skip("Skip this test in undetectable mode.")
4242
self.assert_title_contains("Canvas")
4343
self.highlight("canvas")

examples/test_chromedriver.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@
88

99
class ChromedriverTests(BaseCase):
1010
def test_chromedriver_matches_chrome(self):
11+
self.open("about:blank")
1112
if self.browser != "chrome":
12-
self.open_if_not_url("data:,")
1313
print("\n This test is only for Chrome!")
14-
print(' (Run with: "--browser=chrome")')
1514
self.skip("This test is only for Chrome!")
1615
chrome_version = self.get_chrome_version()
1716
major_chrome_version = chrome_version.split(".")[0]

examples/test_hack_search.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ class HackingTests(BaseCase):
1010
def test_hack_search(self):
1111
if self.headless:
1212
self.open_if_not_url("about:blank")
13-
print("\n This test is not for Headless Mode.")
14-
self.skip('Do not use "--headless" with this test.')
13+
print("\n Skipping test in headless mode.")
14+
self.skip('Skipping test in headless mode.')
1515
self.open("https://google.com/ncr")
1616
self.hide_elements("iframe")
1717
self.assert_element('[title="Search"]')

examples/test_multiple_drivers.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ class MultipleDriversTest(BaseCase):
66
def test_multiple_drivers(self):
77
if self.browser == "safari":
88
self.open_if_not_url("about:blank")
9-
message = "Safari doesn't support multiple drivers."
10-
print(message)
11-
self.skip(message)
9+
print("\n Safari doesn't support multiple drivers.")
10+
self.skip("Safari doesn't support multiple drivers.")
1211
self.open("data:text/html,<h1>Driver 1</h1>")
1312
driver2 = self.get_new_driver()
1413
self.open("data:text/html,<h1>Driver 2</h1>")

examples/test_override_driver.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class OverrideDriverTest(BaseCase):
77
def get_new_driver(self, *args, **kwargs):
88
"""This method overrides get_new_driver() from BaseCase."""
99
options = webdriver.ChromeOptions()
10-
options.add_argument("--disable-3d-apis")
1110
options.add_argument("--disable-notifications")
1211
if self.headless:
1312
options.add_argument("--headless=new")
@@ -24,4 +23,9 @@ def get_new_driver(self, *args, **kwargs):
2423

2524
def test_driver_override(self):
2625
self.open("https://seleniumbase.io/demo_page")
27-
self.assert_text("Demo Page", "h1")
26+
self.type("#myTextInput", "This is Automated")
27+
self.set_value("input#mySlider", "100")
28+
self.select_option_by_text("#mySelect", "Set to 100%")
29+
self.click("#checkBox1")
30+
self.drag_and_drop("img#logo", "div#drop2")
31+
self.click('button:contains("Click Me")')

examples/test_override_sb_fixture.py

+17-1
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,18 @@ class BaseClass(BaseCase):
1313
def get_new_driver(self, *args, **kwargs):
1414
"""This method overrides get_new_driver() from BaseCase."""
1515
options = webdriver.ChromeOptions()
16+
options.add_argument("--disable-notifications")
1617
if self.headless:
1718
options.add_argument("--headless=new")
1819
options.add_argument("--disable-gpu")
1920
options.add_experimental_option(
20-
"excludeSwitches", ["enable-automation"],
21+
"excludeSwitches", ["enable-automation", "enable-logging"],
2122
)
23+
prefs = {
24+
"credentials_enable_service": False,
25+
"profile.password_manager_enabled": False,
26+
}
27+
options.add_experimental_option("prefs", prefs)
2228
return webdriver.Chrome(options=options)
2329

2430
def setUp(self):
@@ -63,9 +69,19 @@ def tearDown(self):
6369
def test_override_fixture_no_class(sb):
6470
sb.open("https://seleniumbase.io/demo_page")
6571
sb.type("#myTextInput", "This is Automated")
72+
sb.set_value("input#mySlider", "100")
73+
sb.select_option_by_text("#mySelect", "Set to 100%")
74+
sb.click("#checkBox1")
75+
sb.drag_and_drop("img#logo", "div#drop2")
76+
sb.click('button:contains("Click Me")')
6677

6778

6879
class TestOverride:
6980
def test_override_fixture_inside_class(self, sb):
7081
sb.open("https://seleniumbase.io/demo_page")
7182
sb.type("#myTextInput", "This is Automated")
83+
sb.set_value("input#mySlider", "100")
84+
sb.select_option_by_text("#mySelect", "Set to 100%")
85+
sb.click("#checkBox1")
86+
sb.drag_and_drop("img#logo", "div#drop2")
87+
sb.click('button:contains("Click Me")')

examples/test_shadow_dom.py

+4-12
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,10 @@ def download_tar_file_from_pypi(self, package):
1919
return tar_file
2020

2121
def test_shadow_dom(self):
22-
if self.browser != "chrome":
23-
self.open("about:blank")
24-
print("\n This test is for Google Chrome only!")
25-
self.skip("This test is for Google Chrome only!")
26-
if self.headless:
27-
self.open("about:blank")
28-
print("\n This test doesn't run in headless mode!")
29-
self.skip("This test doesn't run in headless mode!")
30-
if self.recorder_mode:
31-
self.open("about:blank")
32-
print("Skipping test in Recorder Mode.")
33-
self.skip("Skipping test in Recorder Mode.")
22+
if not self.browser == "chrome" or self.headless or self.recorder_mode:
23+
self.open_if_not_url("about:blank")
24+
print("\n Unsupported mode for this test.")
25+
self.skip("Unsupported mode for this test.")
3426

3527
# Download Python package files from PyPI
3628
file_name_1 = self.download_tar_file_from_pypi("sbase")

examples/test_verify_chromedriver.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@
55

66
class ChromedriverTests(BaseCase):
77
def test_fail_if_versions_dont_match(self):
8-
self.open("data:,")
8+
self.open("about:blank")
99
if self.browser != "chrome":
10-
self.open_if_not_url("data:,")
1110
print("\n This test is only for Chrome!")
12-
print(" (Run with: '--chrome')")
1311
self.skip("This test is only for Chrome!")
1412
chrome_version = self.get_chrome_version()
1513
major_chrome_version = chrome_version.split(".")[0]

examples/youtube_search_test.py

+5-9
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,19 @@
55
class YouTubeSearchTests(BaseCase):
66
def test_youtube_autocomplete_results(self):
77
"""Verify YouTube autocomplete search results."""
8-
if self.headless:
8+
if self.headless or self.browser == "safari":
99
self.open_if_not_url("about:blank")
10-
message = "This test is skipped in headless mode."
11-
print(message)
12-
self.skip(message)
13-
elif self.browser == "safari":
14-
self.open_if_not_url("about:blank")
15-
message = "This test is skipped when using Safari."
16-
print(message)
17-
self.skip(message)
10+
print("\n Unsupported mode for this test.")
11+
self.skip("Unsupported mode for this test.")
1812
self.open("https://www.youtube.com/c/MichaelMintz")
1913
search_term = "seleniumbase"
2014
search_selector = "input#search"
2115
result_selector = 'li[role="presentation"]'
2216
self.click_if_visible('button[aria-label="Close"]')
2317
self.double_click(search_selector)
18+
self.sleep(0.15)
2419
self.type(search_selector, search_term)
20+
self.sleep(0.15)
2521
# First verify that an autocomplete result exists
2622
self.assert_element(result_selector)
2723
top_result = self.get_text(result_selector)

mkdocs_build/requirements.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
regex>=2023.12.25
55
pymdown-extensions>=10.7
6-
pipdeptree>=2.14.0
6+
pipdeptree>=2.15.1
77
python-dateutil>=2.8.2
88
Markdown==3.5.2
9-
markdown2==2.4.12
9+
markdown2==2.4.13
1010
MarkupSafe==2.1.5
1111
Jinja2==3.1.3
1212
click==8.1.7
@@ -20,7 +20,7 @@ lxml==5.1.0
2020
pyquery==2.0.0
2121
readtime==3.0.0
2222
mkdocs==1.5.3
23-
mkdocs-material==9.5.10
23+
mkdocs-material==9.5.11
2424
mkdocs-exclude-search==0.6.6
2525
mkdocs-simple-hooks==0.1.5
2626
mkdocs-material-extensions==1.3.1

requirements.txt

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
pip>=24.0
22
packaging>=23.2
33
setuptools>=68.0.0;python_version<"3.8"
4-
setuptools>=69.1.0;python_version>="3.8"
4+
setuptools>=69.1.1;python_version>="3.8"
55
wheel>=0.42.0
66
attrs>=23.2.0
77
certifi>=2024.2.2
88
filelock>=3.12.2;python_version<"3.8"
99
filelock>=3.13.1;python_version>="3.8"
1010
platformdirs>=4.0.0;python_version<"3.8"
1111
platformdirs>=4.2.0;python_version>="3.8"
12-
typing-extensions>=4.9.0;python_version>="3.8"
12+
typing-extensions>=4.10.0;python_version>="3.8"
1313
parse>=1.20.1
1414
parse-type>=0.6.2
1515
pyyaml>=6.0.1
@@ -21,7 +21,7 @@ urllib3>=1.26.18,<2;python_version<"3.10"
2121
urllib3>=1.26.18,<2.3.0;python_version>="3.10"
2222
requests==2.31.0
2323
pynose==1.5.0
24-
sniffio==1.3.0
24+
sniffio==1.3.1
2525
h11==0.14.0
2626
outcome==1.3.0.post0
2727
trio==0.22.2;python_version<"3.8"
@@ -39,7 +39,7 @@ pluggy==1.2.0;python_version<"3.8"
3939
pluggy==1.4.0;python_version>="3.8"
4040
py==1.11.0
4141
pytest==7.4.4;python_version<"3.8"
42-
pytest==8.0.1;python_version>="3.8"
42+
pytest==8.0.2;python_version>="3.8"
4343
pytest-html==2.0.1
4444
pytest-metadata==3.0.0;python_version<"3.8"
4545
pytest-metadata==3.1.1;python_version>="3.8"
@@ -69,7 +69,7 @@ rich==13.7.0
6969

7070
coverage==6.2;python_version<"3.7"
7171
coverage==7.2.7;python_version>="3.7" and python_version<"3.8"
72-
coverage==7.4.2;python_version>="3.8"
72+
coverage==7.4.3;python_version>="3.8"
7373
pytest-cov==4.0.0;python_version<"3.7"
7474
pytest-cov==4.1.0;python_version>="3.7"
7575
flake8==5.0.4;python_version<"3.9"

seleniumbase/__version__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# seleniumbase package
2-
__version__ = "4.24.0"
2+
__version__ = "4.24.1"

0 commit comments

Comments
 (0)