Skip to content

Commit 7019734

Browse files
committed
Add compatibility with Selenoid Selenium grids
1 parent 85f7777 commit 7019734

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Desired capabilities example file for Selenoid Grid
2+
#
3+
# The same result can be achieved on the command-line with:
4+
# --cap-string='{"selenoid": "true"}'
5+
6+
capabilities = {
7+
"selenoid": "true",
8+
}

seleniumbase/core/browser_launcher.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -970,10 +970,17 @@ def get_remote_driver(
970970
else:
971971
capabilities = chrome_options.to_capabilities()
972972
# Set custom desired capabilities
973+
selenoid = False
973974
for key in desired_caps.keys():
974975
capabilities[key] = desired_caps[key]
976+
if key == "selenoid" and desired_caps[key]:
977+
selenoid = True
975978
if selenium4:
976979
chrome_options.set_capability("cloud:options", capabilities)
980+
if selenoid:
981+
chrome_options.set_capability(
982+
"selenoid:options", {"enableVNC": True}
983+
)
977984
return webdriver.Remote(
978985
command_executor=address,
979986
options=chrome_options,
@@ -1007,10 +1014,17 @@ def get_remote_driver(
10071014
if headless:
10081015
capabilities["moz:firefoxOptions"] = {"args": ["-headless"]}
10091016
# Set custom desired capabilities
1017+
selenoid = False
10101018
for key in desired_caps.keys():
10111019
capabilities[key] = desired_caps[key]
1020+
if key == "selenoid" and desired_caps[key]:
1021+
selenoid = True
10121022
if selenium4:
10131023
firefox_options.set_capability("cloud:options", capabilities)
1024+
if selenoid:
1025+
firefox_options.set_capability(
1026+
"selenoid:options", {"enableVNC": True}
1027+
)
10141028
return webdriver.Remote(
10151029
command_executor=address,
10161030
options=firefox_options,
@@ -1175,9 +1189,17 @@ def get_remote_driver(
11751189
keep_alive=True,
11761190
)
11771191
elif browser_name == constants.Browser.REMOTE:
1192+
selenoid = False
1193+
for key in desired_caps.keys():
1194+
if key == "selenoid" and desired_caps[key]:
1195+
selenoid = True
11781196
if selenium4:
11791197
remote_options = ArgOptions()
11801198
remote_options.set_capability("cloud:options", desired_caps)
1199+
if selenoid:
1200+
remote_options.set_capability(
1201+
"selenoid:options", {"enableVNC": True}
1202+
)
11811203
return webdriver.Remote(
11821204
command_executor=address,
11831205
options=remote_options,

0 commit comments

Comments
 (0)