Skip to content

Commit 6e72fd3

Browse files
committed
Fix issue with multithreaded tests in Remote Debug Mode
1 parent 96f967e commit 6e72fd3

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import zipfile
1313
from selenium import webdriver
1414
from selenium.webdriver.chrome.service import Service as ChromeService
15+
from selenium.webdriver.common.service import utils as service_utils
1516
from selenium.webdriver.edge.service import Service as EdgeService
1617
from selenium.webdriver.firefox.service import Service as FirefoxService
1718
from selenium.webdriver.safari.service import Service as SafariService
@@ -731,7 +732,12 @@ def _set_chrome_options(
731732
# To access the Debugger, go to: chrome://inspect/#devices
732733
# while a Chromium driver is running.
733734
# Info: https://chromedevtools.github.io/devtools-protocol/
734-
chrome_options.add_argument("--remote-debugging-port=9222")
735+
sys_argv = sys.argv
736+
arg_join = " ".join(sys_argv)
737+
debug_port = 9222
738+
if ("-n" in sys.argv) or (" -n=" in arg_join) or ("-c" in sys.argv):
739+
debug_port = service_utils.free_port()
740+
chrome_options.add_argument("--remote-debugging-port=%s" % debug_port)
735741
if swiftshader:
736742
chrome_options.add_argument("--use-gl=swiftshader")
737743
elif not is_using_uc(undetectable, browser_name):
@@ -2477,7 +2483,12 @@ def get_local_driver(
24772483
# To access the Debugger, go to: edge://inspect/#devices
24782484
# while a Chromium driver is running.
24792485
# Info: https://chromedevtools.github.io/devtools-protocol/
2480-
edge_options.add_argument("--remote-debugging-port=9222")
2486+
sys_argv = sys.argv
2487+
arg_join = " ".join(sys_argv)
2488+
free_port = 9222
2489+
if ("-n" in sys.argv or " -n=" in args or args == "-c"):
2490+
free_port = service_utils.free_port()
2491+
edge_options.add_argument("--remote-debugging-port=%s" % free_port)
24812492
if swiftshader:
24822493
edge_options.add_argument("--use-gl=swiftshader")
24832494
else:
@@ -2527,7 +2538,14 @@ def get_local_driver(
25272538
log_path=os.devnull,
25282539
)
25292540
# https://stackoverflow.com/a/56638103/7058266
2530-
edge_options.add_argument("--remote-debugging-port=9222")
2541+
sys_argv = sys.argv
2542+
arg_join = " ".join(sys_argv)
2543+
free_port = 9222
2544+
if ("-n" in sys.argv or " -n=" in args or args == "-c"):
2545+
free_port = service_utils.free_port()
2546+
edge_options.add_argument(
2547+
"--remote-debugging-port=%s" % free_port
2548+
)
25312549
return Edge(service=service, options=edge_options)
25322550
if not auto_upgrade_edgedriver:
25332551
raise # Not an obvious fix.
@@ -2593,7 +2611,14 @@ def get_local_driver(
25932611
log_path=os.devnull,
25942612
)
25952613
# https://stackoverflow.com/a/56638103/7058266
2596-
edge_options.add_argument("--remote-debugging-port=9222")
2614+
sys_argv = sys.argv
2615+
arg_join = " ".join(sys_argv)
2616+
free_port = 9222
2617+
if ("-n" in sys.argv or " -n=" in args or args == "-c"):
2618+
free_port = service_utils.free_port()
2619+
edge_options.add_argument(
2620+
"--remote-debugging-port=%s" % free_port
2621+
)
25972622
return Edge(service=service, options=edge_options)
25982623
if not auto_upgrade_edgedriver:
25992624
raise # Not an obvious fix.

0 commit comments

Comments
 (0)