Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions seleniumbase/config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@
# In global Selenium settings, this value is set to 300 seconds by default.
PAGE_LOAD_TIMEOUT = 120

# Default client-side timeout (in seconds) for each HTTP request that a
# Remote WebDriver client sends to a Selenium server / Selenium Grid.
# When set to None, requests have no client-side timeout, which means
# a WebDriver command can block forever if a grid node dies mid-session.
# If used, set this higher than PAGE_LOAD_TIMEOUT, and higher than the
# time a new-session request may wait in your grid's session queue.
REMOTE_WEBDRIVER_TIMEOUT = None

# Default page load strategy.
# ["normal", "eager", "none"]
# Selenium default = "normal"
Expand Down
13 changes: 13 additions & 0 deletions seleniumbase/core/browser_launcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from selenium.common.exceptions import SessionNotCreatedException
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common import utils as common_utils
from selenium.webdriver.remote.client_config import ClientConfig
from seleniumbase import config as sb_config
from seleniumbase import decorators
from seleniumbase import drivers # webdriver storage folder for SeleniumBase
Expand Down Expand Up @@ -3719,6 +3720,12 @@ def get_remote_driver(
address += "wd/hub"
else:
address += "/wd/hub"
client_config = None
if settings.REMOTE_WEBDRIVER_TIMEOUT:
client_config = ClientConfig(
remote_server_addr=address,
timeout=settings.REMOTE_WEBDRIVER_TIMEOUT,
)
downloads_path = DOWNLOADS_FOLDER
desired_caps = {}
extra_caps = {}
Expand Down Expand Up @@ -3845,6 +3852,7 @@ def get_remote_driver(
chrome_options.set_capability(key, ext_caps[key])
driver = webdriver.Remote(
command_executor=address,
client_config=client_config,
options=chrome_options,
)
return extend_driver(driver)
Expand Down Expand Up @@ -3910,6 +3918,7 @@ def get_remote_driver(
firefox_options.set_capability(key, ext_caps[key])
driver = webdriver.Remote(
command_executor=address,
client_config=client_config,
options=firefox_options,
)
return extend_driver(driver)
Expand All @@ -3919,6 +3928,7 @@ def get_remote_driver(
remote_options.set_capability("cloud:options", desired_caps)
driver = webdriver.Remote(
command_executor=address,
client_config=client_config,
options=remote_options,
)
return extend_driver(driver)
Expand Down Expand Up @@ -4018,6 +4028,7 @@ def get_remote_driver(
edge_options.set_capability(key, ext_caps[key])
driver = webdriver.Remote(
command_executor=address,
client_config=client_config,
options=edge_options,
)
return extend_driver(driver)
Expand All @@ -4027,6 +4038,7 @@ def get_remote_driver(
remote_options.set_capability("cloud:options", desired_caps)
driver = webdriver.Remote(
command_executor=address,
client_config=client_config,
options=remote_options,
)
return extend_driver(driver)
Expand All @@ -4039,6 +4051,7 @@ def get_remote_driver(
remote_options.set_capability("bstack:options", desired_caps)
driver = webdriver.Remote(
command_executor=address,
client_config=client_config,
options=remote_options,
)
return extend_driver(driver)
Expand Down
2 changes: 2 additions & 0 deletions seleniumbase/core/settings_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ def set_settings(settings_file):
settings.EXTREME_TIMEOUT = override_settings[key]
elif key == "PAGE_LOAD_TIMEOUT":
settings.PAGE_LOAD_TIMEOUT = override_settings[key]
elif key == "REMOTE_WEBDRIVER_TIMEOUT":
settings.REMOTE_WEBDRIVER_TIMEOUT = override_settings[key]
elif key == "ARCHIVE_EXISTING_LOGS":
settings.ARCHIVE_EXISTING_LOGS = override_settings[key]
elif key == "ARCHIVE_EXISTING_DOWNLOADS":
Expand Down