Skip to content

Commit

Permalink
[py] deprecate headless property for Chromium and Firefox Options
Browse files Browse the repository at this point in the history
  • Loading branch information
titusfortner committed Jan 14, 2023
1 parent 6c847fb commit f56bc12
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 33 deletions.
5 changes: 4 additions & 1 deletion py/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,10 @@ def get_options(driver_class, config):
if not options:
options = getattr(webdriver, f"{driver_class}Options")()

options.headless = headless
if driver_class == "Chrome" or driver_class == "Edge":
options.add_argument("--headless=new")
if driver_class == "Firefox":
options.add_argument("-headless")
return options


Expand Down
11 changes: 11 additions & 0 deletions py/selenium/webdriver/chromium/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,26 @@ def headless(self) -> bool:
"""
:Returns: True if the headless argument is set, else False
"""
warnings.warn(
"headless property is deprecated, instead check for '--headless' in arguments",
DeprecationWarning, stacklevel=2
)
return "--headless" in self._arguments

@headless.setter
def headless(self, value: bool) -> None:
"""
Sets the headless argument
Old headless uses a non-production browser and is set with `--headless`
Native headless from v86 - v108 is set with `--headless=chrome`
Native headless from v109+ is set with `--headless=new`
:Args:
value: boolean value indicating to set the headless option
"""
warnings.warn(
"headless property is deprecated, instead use add_argument('--headless') or add_argument('--headless=new')",
DeprecationWarning, stacklevel=2
)
args = {"--headless"}
if value is True:
self._arguments.extend(args)
Expand Down
8 changes: 8 additions & 0 deletions py/selenium/webdriver/firefox/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ def headless(self) -> bool:
"""
:Returns: True if the headless argument is set, else False
"""
warnings.warn(
"headless property is deprecated, instead check for '-headless' in arguments",
DeprecationWarning, stacklevel=2
)
return "-headless" in self._arguments

@headless.setter
Expand All @@ -115,6 +119,10 @@ def headless(self, value: bool) -> None:
Args:
value: boolean value indicating to set the headless option
"""
warnings.warn(
"headless property is deprecated, instead use add_argument('-headless')",
DeprecationWarning, stacklevel=2
)
if value:
self._arguments.append("-headless")
elif "-headless" in self._arguments:
Expand Down
16 changes: 0 additions & 16 deletions py/test/unit/selenium/webdriver/chrome/chrome_options_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,22 +112,6 @@ def test_get_experimental_options(options):
assert options.experimental_options["foo"] == "bar"


def test_set_headless(options):
options.headless = True
assert "--headless" in options._arguments


def test_unset_headless(options):
options._arguments = ["--headless"]
options.headless = False
assert "--headless" not in options._arguments


def test_get_headless(options):
options._arguments = ["--headless"]
assert options.headless is True


def test_creates_capabilities(options):
options._arguments = ["foo"]
options._binary_location = "/bar"
Expand Down
16 changes: 0 additions & 16 deletions py/test/unit/selenium/webdriver/firefox/firefox_options_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,22 +127,6 @@ def test_set_log_level(options):
assert options.log.level == "debug"


def test_set_headless(options):
options.headless = True
assert "-headless" in options._arguments


def test_unset_headless(options):
options._arguments = ["-headless"]
options.headless = False
assert "-headless" not in options._arguments


def test_get_headless(options):
options._arguments = ["-headless"]
assert options.headless


def test_creates_capabilities(options):
profile = FirefoxProfile()
options._arguments = ["foo"]
Expand Down

0 comments on commit f56bc12

Please sign in to comment.