Skip to content

Commit ae2cf7d

Browse files
committed
[py] use setter for headless property in options classes
1 parent 6c313a4 commit ae2cf7d

File tree

4 files changed

+27
-10
lines changed

4 files changed

+27
-10
lines changed

py/selenium/webdriver/chrome/options.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import base64
1919
import os
20+
import warnings
2021

2122
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
2223

@@ -158,19 +159,26 @@ def headless(self):
158159
"""
159160
return '--headless' in self._arguments
160161

161-
def set_headless(self, headless=True):
162+
@headless.setter
163+
def headless(self, value):
162164
"""
163165
Sets the headless argument
164166
165167
Args:
166-
headless: boolean value indicating to set the headless option
168+
value: boolean value indicating to set the headless option
167169
"""
168170
args = {'--headless', '--disable-gpu'}
169-
if headless:
171+
if value is True:
170172
self._arguments.extend(args)
171173
else:
172174
self._arguments = list(set(self._arguments) - args)
173175

176+
def set_headless(self, headless=True):
177+
""" Deprecated, options.headless = True """
178+
warnings.warn('use setter for headless property instead of set_headless',
179+
DeprecationWarning)
180+
self.headless = headless
181+
174182
def to_capabilities(self):
175183
"""
176184
Creates a capabilities with all the options that have been set and

py/selenium/webdriver/firefox/options.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
# KIND, either express or implied. See the License for the
1515
# specific language governing permissions and limitations
1616
# under the License.
17+
import warnings
18+
1719
from selenium.common.exceptions import InvalidArgumentException
1820
from selenium.webdriver.common.proxy import Proxy
1921
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
@@ -119,18 +121,25 @@ def headless(self):
119121
"""
120122
return '-headless' in self._arguments
121123

122-
def set_headless(self, headless=True):
124+
@headless.setter
125+
def headless(self, value):
123126
"""
124127
Sets the headless argument
125128
126129
Args:
127-
headless: boolean value indicating to set the headless option
130+
value: boolean value indicating to set the headless option
128131
"""
129-
if headless:
132+
if value is True:
130133
self._arguments.append('-headless')
131134
elif '-headless' in self._arguments:
132135
self._arguments.remove('-headless')
133136

137+
def set_headless(self, headless=True):
138+
""" Deprecated, options.headless = True """
139+
warnings.warn('use setter for headless property instead of set_headless',
140+
DeprecationWarning)
141+
self.headless = headless
142+
134143
def to_capabilities(self):
135144
"""Marshals the Firefox options to a `moz:firefoxOptions`
136145
object.

py/test/unit/selenium/webdriver/chrome/chrome_options_tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,14 @@ def test_get_experimental_options(options):
112112

113113

114114
def test_set_headless(options):
115-
options.set_headless()
115+
options.headless = True
116116
assert '--headless' in options._arguments
117117
assert '--disable-gpu' in options._arguments
118118

119119

120120
def test_unset_headless(options):
121121
options._arguments = ['--headless', '--disable-gpu']
122-
options.set_headless(False)
122+
options.headless = False
123123
assert '--headless' not in options._arguments
124124
assert '--disable-gpu' not in options._arguments
125125

py/test/unit/selenium/webdriver/firefox/firefox_options_tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,13 @@ def test_set_log_level(options):
118118

119119

120120
def test_set_headless(options):
121-
options.set_headless()
121+
options.headless = True
122122
assert '-headless' in options._arguments
123123

124124

125125
def test_unset_headless(options):
126126
options._arguments = ['-headless']
127-
options.set_headless(False)
127+
options.headless = False
128128
assert '-headless' not in options._arguments
129129

130130

0 commit comments

Comments
 (0)