Skip to content

Commit ee6d040

Browse files
authored
Merge pull request #1637 from seleniumbase/driver-updates-and-dependencies
Driver Manager updates and dependencies
2 parents 82e3797 + e6957e1 commit ee6d040

File tree

11 files changed

+79
-43
lines changed

11 files changed

+79
-43
lines changed

examples/my_first_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ def test_swag_labs(self):
2222
self.click("input#continue")
2323
self.assert_text("CHECKOUT: OVERVIEW")
2424
self.assert_text("Backpack", "div.cart_item")
25+
self.assert_text("29.99", "div.inventory_item_price")
2526
self.click("button#finish")
2627
self.assert_exact_text("THANK YOU FOR YOUR ORDER", "h2")
2728
self.assert_element('img[alt="Pony Express"]')

examples/raw_file_call.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""Call a file with "python" instead of using "pytest" directly.
2+
To run, use: "python raw_file_call.py".
3+
Works by using pytest.main([__file__])."""
4+
from seleniumbase import BaseCase
5+
6+
if __name__ == "__main__":
7+
from pytest import main
8+
9+
main([__file__])
10+
11+
12+
class TinyMceTest(BaseCase):
13+
def test_tinymce(self):
14+
self.open("https://seleniumbase.io/tinymce/")
15+
self.wait_for_element("div.mce-container-body")
16+
self.click('span:contains("File")')
17+
self.click('span:contains("New document")')
18+
self.click('span:contains("Paragraph")')
19+
self.click('span:contains("Heading 1")')
20+
with self.frame_switch("iframe"):
21+
self.add_text("#tinymce", "SeleniumBase!")
22+
self.highlight("#tinymce")
23+
self.switch_to_default_content()
24+
self.post_message("SeleniumBase is the best!")

examples/test_tinymce.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def test_tinymce(self):
1414
self.switch_to_default_content()
1515
self.click("button i.mce-i-image")
1616
self.type('input[aria-label="Width"].mce-textbox', "300")
17-
image_url = "https://seleniumbase.io/img/sb_logo_10.png"
17+
image_url = "https://seleniumbase.github.io/img/sb_logo_10.png"
1818
self.type("input.mce-textbox", image_url + "\n")
1919
self.switch_to_frame("iframe")
2020
self.click("h2")

examples/upload_file_test.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
""" Testing the self.choose_file() and self.assert_attribute() methods. """
2-
1+
"""Testing the self.choose_file() and self.assert_attribute() methods."""
32
import os
43
from seleniumbase import BaseCase
54

requirements.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ tomli>=2.0.1;python_version>="3.7"
1212
tqdm>=4.64.1
1313
wheel>=0.37.1;python_version<"3.7"
1414
wheel>=0.38.4;python_version>="3.7"
15-
attrs>=21.4.0;python_version<"3.6"
16-
attrs>=22.1.0;python_version>="3.6"
15+
attrs==21.4.0;python_version<"3.6"
16+
attrs==22.1.0;python_version>="3.6" and python_version<"3.7"
17+
attrs>=22.2.0;python_version>="3.7"
1718
PyYAML>=6.0;python_version>="3.6"
1819
certifi>=2021.10.8;python_version<"3.6"
1920
certifi>=2022.12.7;python_version>="3.6"
@@ -121,7 +122,7 @@ rich==12.6.0;python_version>="3.6" and python_version<"4.0"
121122

122123
coverage==5.5;python_version<"3.6"
123124
coverage==6.2;python_version>="3.6" and python_version<"3.7"
124-
coverage==6.5.0;python_version>="3.7"
125+
coverage==7.0.0;python_version>="3.7"
125126
pytest-cov==2.12.1;python_version<"3.6"
126127
pytest-cov==4.0.0;python_version>="3.6"
127128
flake8==3.7.9;python_version<"3.6"

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.9.9"
2+
__version__ = "4.9.10"

seleniumbase/console_scripts/ReadMe.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,16 @@ sbase install [DRIVER] [OPTIONS]
6262
sbase get chromedriver
6363
sbase get geckodriver
6464
sbase get edgedriver
65-
sbase get chromedriver 107
66-
sbase get chromedriver 107.0.5304.62
65+
sbase get chromedriver 108
66+
sbase get chromedriver 108.0.5359.71
6767
sbase get chromedriver latest
6868
sbase get chromedriver latest-1 # (Latest minus one)
6969
sbase get chromedriver -p
7070
sbase get chromedriver latest -p
7171
```
7272

7373
(Drivers: ``chromedriver``, ``geckodriver``, ``edgedriver``,
74-
``iedriver``, ``operadriver``)
74+
``iedriver``, ``operadriver``, ``uc_driver``)
7575

7676
(Options: ``latest`` or a specific driver version.
7777
For chromedriver, you can also specify the major

seleniumbase/console_scripts/run.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def show_install_usage():
129129
print(" OR: sbase install [DRIVER_NAME] [OPTIONS]")
130130
print(" OR: sbase get [DRIVER_NAME] [OPTIONS]")
131131
print(" (Drivers: chromedriver, geckodriver, edgedriver")
132-
print(" iedriver, operadriver)")
132+
print(" iedriver, operadriver, uc_driver)")
133133
print(" Options:")
134134
print(" VERSION Specify the version to download.")
135135
print(" Tries to detect the needed version.")
@@ -143,8 +143,8 @@ def show_install_usage():
143143
print(" sbase get chromedriver")
144144
print(" sbase get geckodriver")
145145
print(" sbase get edgedriver")
146-
print(" sbase get chromedriver 107")
147-
print(" sbase get chromedriver 107.0.5304.62")
146+
print(" sbase get chromedriver 108")
147+
print(" sbase get chromedriver 108.0.5359.71")
148148
print(" sbase get chromedriver latest")
149149
print(" sbase get chromedriver latest-1")
150150
print(" sbase get chromedriver -p")

seleniumbase/console_scripts/sb_install.py

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
sbase get chromedriver
1515
sbase get geckodriver
1616
sbase get edgedriver
17-
sbase get chromedriver 107
18-
sbase get chromedriver 107.0.5304.62
17+
sbase get chromedriver 108
18+
sbase get chromedriver 108.0.5359.71
1919
sbase get chromedriver latest
2020
sbase get chromedriver latest-1 # (Latest minus one)
2121
sbase get chromedriver -p
@@ -42,11 +42,20 @@
4242
selenium4_or_newer = False
4343
if sys.version_info[0] == 3 and sys.version_info[1] >= 7:
4444
selenium4_or_newer = True
45+
IS_ARM_MAC = False
46+
if (
47+
sys.platform.endswith("darwin")
48+
and (
49+
"arm" in platform.processor().lower()
50+
or "arm64" in platform.version().lower()
51+
)
52+
):
53+
IS_ARM_MAC = True
4554
DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__))
4655
LOCAL_PATH = "/usr/local/bin/" # On Mac and Linux systems
4756
DEFAULT_CHROMEDRIVER_VERSION = "72.0.3626.69" # (If can't find LATEST_STABLE)
4857
DEFAULT_GECKODRIVER_VERSION = "v0.32.0"
49-
DEFAULT_EDGEDRIVER_VERSION = "106.0.1370.42" # (If can't find LATEST_STABLE)
58+
DEFAULT_EDGEDRIVER_VERSION = "108.0.1462.54" # (If can't find LATEST_STABLE)
5059
DEFAULT_OPERADRIVER_VERSION = "v.96.0.4664.45"
5160

5261

@@ -58,7 +67,7 @@ def invalid_run_command():
5867
exp += " OR seleniumbase get [DRIVER] [OPTIONS]\n"
5968
exp += " OR sbase get [DRIVER] [OPTIONS]\n"
6069
exp += " (Drivers: chromedriver, geckodriver, edgedriver,\n"
61-
exp += " iedriver, operadriver)\n"
70+
exp += " iedriver, operadriver, uc_driver)\n"
6271
exp += " Options:\n"
6372
exp += " VERSION Specify the version.\n"
6473
exp += " Tries to detect the needed version.\n"
@@ -71,8 +80,8 @@ def invalid_run_command():
7180
exp += " sbase get chromedriver\n"
7281
exp += " sbase get geckodriver\n"
7382
exp += " sbase get edgedriver\n"
74-
exp += " sbase get chromedriver 107\n"
75-
exp += " sbase get chromedriver 107.0.5304.62\n"
83+
exp += " sbase get chromedriver 108\n"
84+
exp += " sbase get chromedriver 108.0.5359.71\n"
7685
exp += " sbase get chromedriver latest\n"
7786
exp += " sbase get chromedriver latest-1\n"
7887
exp += " sbase get chromedriver -p\n"
@@ -179,7 +188,9 @@ def main(override=None, intel_for_uc=None):
179188
c3 = ""
180189
cr = ""
181190

182-
if name == "chromedriver":
191+
if name == "chromedriver" or name == "uc_driver":
192+
if name == "uc_driver" and IS_ARM_MAC:
193+
intel_for_uc = True # uc_driver is generated from chromedriver
183194
last = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"
184195
use_version = DEFAULT_CHROMEDRIVER_VERSION
185196

@@ -229,10 +240,7 @@ def main(override=None, intel_for_uc=None):
229240
invalid_run_command()
230241
if "darwin" in sys_plat:
231242
if (
232-
(
233-
"arm" in platform.processor().lower()
234-
or "arm64" in platform.version().lower()
235-
)
243+
IS_ARM_MAC
236244
and not intel_for_uc
237245
and int(use_version.split(".")[0]) > 105
238246
):
@@ -402,13 +410,7 @@ def main(override=None, intel_for_uc=None):
402410
file_name = "edgedriver_win32.zip"
403411
suffix = "WINDOWS"
404412
elif "darwin" in sys_plat:
405-
if (
406-
(
407-
"arm" in platform.processor().lower()
408-
or "arm64" in platform.version().lower()
409-
)
410-
and int(use_version.split(".")[0]) > 104
411-
):
413+
if IS_ARM_MAC and int(use_version.split(".")[0]) > 104:
412414
file_name = "edgedriver_mac64_m1.zip"
413415
else:
414416
file_name = "edgedriver_mac64.zip"
@@ -645,18 +647,19 @@ def main(override=None, intel_for_uc=None):
645647
for f_name in contents:
646648
# Remove existing version if exists
647649
new_file = os.path.join(downloads_folder, str(f_name))
650+
if (
651+
intel_for_uc
652+
and "darwin" in sys_plat
653+
and new_file.endswith("drivers/chromedriver")
654+
):
655+
new_file = new_file.replace(
656+
"drivers/chromedriver", "drivers/uc_driver"
657+
)
648658
if "Driver" in new_file or "driver" in new_file:
649659
if os.path.exists(new_file):
650660
os.remove(new_file) # Technically the old file now
651661
print("Extracting %s from %s ..." % (contents, file_name))
652-
if (
653-
intel_for_uc
654-
and "darwin" in sys_plat
655-
and (
656-
"arm" in platform.processor().lower()
657-
or "arm64" in platform.version().lower()
658-
)
659-
):
662+
if intel_for_uc and IS_ARM_MAC:
660663
f_name = "uc_driver"
661664
new_file = os.path.join(downloads_folder, f_name)
662665
if os.path.exists(new_file):
@@ -873,6 +876,11 @@ def main(override=None, intel_for_uc=None):
873876
make_executable(file_path)
874877
print("%s[%s] is now ready for use!%s" % (c1, file_name, cr))
875878
print("Location of [%s]:\n%s\n" % (file_name, file_path))
879+
if name == "uc_driver" and not IS_ARM_MAC:
880+
print(
881+
"%s[uc_driver] will be created from [chromedriver] at runtime!%s\n"
882+
% (c5, cr)
883+
)
876884

877885

878886
if __name__ == "__main__":

seleniumbase/fixtures/constants.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class Environment:
2222
BETA = "beta"
2323
MAIN = "main"
2424
TEST = "test"
25+
UAT = "uat"
2526

2627

2728
class ValidEnvs:
@@ -40,6 +41,7 @@ class ValidEnvs:
4041
"beta",
4142
"main",
4243
"test",
44+
"uat",
4345
]
4446

4547

@@ -158,7 +160,7 @@ class Warnings:
158160

159161

160162
class JQuery:
161-
VER = "3.6.0"
163+
VER = "3.6.3"
162164
MIN_JS = "https://cdn.jsdelivr.net/npm/jquery@%s/dist/jquery.min.js" % VER
163165

164166

0 commit comments

Comments
 (0)