Skip to content

Commit aca5214

Browse files
authored
Merge pull request #1452 from TaylorMcGinnis/handle_custom_desired_capabilities
Handle extension capabilities
2 parents c6b9d29 + e1def74 commit aca5214

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1068,6 +1068,7 @@ def get_remote_driver(
10681068
screen_resolution = None
10691069
browser_version = None
10701070
platform_name = None
1071+
extension_capabilities = {}
10711072
for key in desired_caps.keys():
10721073
capabilities[key] = desired_caps[key]
10731074
if key == "selenoid:options":
@@ -1079,6 +1080,8 @@ def get_remote_driver(
10791080
browser_version = desired_caps[key]
10801081
elif key == "platform" or key == "platformName":
10811082
platform_name = desired_caps[key]
1083+
elif re.match("[a-zA-Z0-9]*:[a-zA-Z0-9]*", key):
1084+
extension_capabilities[key] = desired_caps[key]
10821085
if selenium4:
10831086
chrome_options.set_capability("cloud:options", capabilities)
10841087
if selenoid:
@@ -1093,6 +1096,10 @@ def get_remote_driver(
10931096
if platform_name:
10941097
plat_name = platform_name
10951098
chrome_options.set_capability("platformName", plat_name)
1099+
if extension_capabilities:
1100+
for key in extension_capabilities:
1101+
ext_caps = extension_capabilities
1102+
chrome_options.set_capability(key, ext_caps[key])
10961103
return webdriver.Remote(
10971104
command_executor=address,
10981105
options=chrome_options,
@@ -1133,6 +1140,7 @@ def get_remote_driver(
11331140
screen_resolution = None
11341141
browser_version = None
11351142
platform_name = None
1143+
extension_capabilities = {}
11361144
for key in desired_caps.keys():
11371145
capabilities[key] = desired_caps[key]
11381146
if key == "selenoid:options":
@@ -1144,6 +1152,8 @@ def get_remote_driver(
11441152
browser_version = desired_caps[key]
11451153
elif key == "platform" or key == "platformName":
11461154
platform_name = desired_caps[key]
1155+
elif re.match("[a-zA-Z0-9]*:[a-zA-Z0-9]*", key):
1156+
extension_capabilities[key] = desired_caps[key]
11471157
if selenium4:
11481158
firefox_options.set_capability("cloud:options", capabilities)
11491159
if selenoid:
@@ -1158,6 +1168,10 @@ def get_remote_driver(
11581168
if platform_name:
11591169
plat_name = platform_name
11601170
firefox_options.set_capability("platformName", plat_name)
1171+
if extension_capabilities:
1172+
for key in extension_capabilities:
1173+
ext_caps = extension_capabilities
1174+
firefox_options.set_capability(key, ext_caps[key])
11611175
return webdriver.Remote(
11621176
command_executor=address,
11631177
options=firefox_options,
@@ -1278,6 +1292,7 @@ def get_remote_driver(
12781292
screen_resolution = None
12791293
browser_version = None
12801294
platform_name = None
1295+
extension_capabilities = {}
12811296
for key in desired_caps.keys():
12821297
capabilities[key] = desired_caps[key]
12831298
if key == "selenoid:options":
@@ -1289,6 +1304,8 @@ def get_remote_driver(
12891304
browser_version = desired_caps[key]
12901305
elif key == "platform" or key == "platformName":
12911306
platform_name = desired_caps[key]
1307+
elif re.match("[a-zA-Z0-9]*:[a-zA-Z0-9]*", key):
1308+
extension_capabilities[key] = desired_caps[key]
12921309
if selenium4:
12931310
opera_options.set_capability("cloud:options", capabilities)
12941311
if selenoid:
@@ -1303,6 +1320,10 @@ def get_remote_driver(
13031320
if platform_name:
13041321
plat_name = platform_name
13051322
opera_options.set_capability("platformName", plat_name)
1323+
if extension_capabilities:
1324+
for key in extension_capabilities:
1325+
ext_caps = extension_capabilities
1326+
opera_options.set_capability(key, ext_caps[key])
13061327
return webdriver.Remote(
13071328
command_executor=address,
13081329
options=opera_options,

0 commit comments

Comments
 (0)