Skip to content

Commit 2b93e73

Browse files
[py] deprecate w3c checks in python bindings (#9109)
Co-authored-by: David Burns <[email protected]>
1 parent 9b3e08b commit 2b93e73

File tree

9 files changed

+173
-347
lines changed

9 files changed

+173
-347
lines changed

py/selenium/webdriver/common/action_chains.py

+59-98
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@
1919
The ActionChains implementation,
2020
"""
2121

22-
import time
23-
24-
from selenium.webdriver.remote.command import Command
25-
2622
from .utils import keys_to_typing
2723
from .actions.action_builder import ActionBuilder
2824

@@ -69,27 +65,21 @@ def __init__(self, driver):
6965
"""
7066
self._driver = driver
7167
self._actions = []
72-
if self._driver.w3c:
73-
self.w3c_actions = ActionBuilder(driver)
68+
self.w3c_actions = ActionBuilder(driver)
7469

7570
def perform(self):
7671
"""
7772
Performs all stored actions.
7873
"""
79-
if self._driver.w3c:
80-
self.w3c_actions.perform()
81-
else:
82-
for action in self._actions:
83-
action()
74+
self.w3c_actions.perform()
8475

8576
def reset_actions(self):
8677
"""
8778
Clears actions that are already stored locally and on the remote end
8879
"""
89-
if self._driver.w3c:
90-
self.w3c_actions.clear_actions()
91-
for device in self.w3c_actions.devices:
92-
device.clear_actions()
80+
self.w3c_actions.clear_actions()
81+
for device in self.w3c_actions.devices:
82+
device.clear_actions()
9383
self._actions = []
9484

9585
def click(self, on_element=None):
@@ -102,13 +92,11 @@ def click(self, on_element=None):
10292
"""
10393
if on_element:
10494
self.move_to_element(on_element)
105-
if self._driver.w3c:
106-
self.w3c_actions.pointer_action.click()
107-
self.w3c_actions.key_action.pause()
108-
self.w3c_actions.key_action.pause()
109-
else:
110-
self._actions.append(lambda: self._driver.execute(
111-
Command.CLICK, {'button': 0}))
95+
96+
self.w3c_actions.pointer_action.click()
97+
self.w3c_actions.key_action.pause()
98+
self.w3c_actions.key_action.pause()
99+
112100
return self
113101

114102
def click_and_hold(self, on_element=None):
@@ -121,12 +109,10 @@ def click_and_hold(self, on_element=None):
121109
"""
122110
if on_element:
123111
self.move_to_element(on_element)
124-
if self._driver.w3c:
125-
self.w3c_actions.pointer_action.click_and_hold()
126-
self.w3c_actions.key_action.pause()
127-
else:
128-
self._actions.append(lambda: self._driver.execute(
129-
Command.MOUSE_DOWN, {}))
112+
113+
self.w3c_actions.pointer_action.click_and_hold()
114+
self.w3c_actions.key_action.pause()
115+
130116
return self
131117

132118
def context_click(self, on_element=None):
@@ -139,13 +125,11 @@ def context_click(self, on_element=None):
139125
"""
140126
if on_element:
141127
self.move_to_element(on_element)
142-
if self._driver.w3c:
143-
self.w3c_actions.pointer_action.context_click()
144-
self.w3c_actions.key_action.pause()
145-
self.w3c_actions.key_action.pause()
146-
else:
147-
self._actions.append(lambda: self._driver.execute(
148-
Command.CLICK, {'button': 2}))
128+
129+
self.w3c_actions.pointer_action.context_click()
130+
self.w3c_actions.key_action.pause()
131+
self.w3c_actions.key_action.pause()
132+
149133
return self
150134

151135
def double_click(self, on_element=None):
@@ -158,13 +142,11 @@ def double_click(self, on_element=None):
158142
"""
159143
if on_element:
160144
self.move_to_element(on_element)
161-
if self._driver.w3c:
162-
self.w3c_actions.pointer_action.double_click()
163-
for _ in range(4):
164-
self.w3c_actions.key_action.pause()
165-
else:
166-
self._actions.append(lambda: self._driver.execute(
167-
Command.DOUBLE_CLICK, {}))
145+
146+
self.w3c_actions.pointer_action.double_click()
147+
for _ in range(4):
148+
self.w3c_actions.key_action.pause()
149+
168150
return self
169151

170152
def drag_and_drop(self, source, target):
@@ -212,13 +194,10 @@ def key_down(self, value, element=None):
212194
"""
213195
if element:
214196
self.click(element)
215-
if self._driver.w3c:
216-
self.w3c_actions.key_action.key_down(value)
217-
self.w3c_actions.pointer_action.pause()
218-
else:
219-
self._actions.append(lambda: self._driver.execute(
220-
Command.SEND_KEYS_TO_ACTIVE_ELEMENT,
221-
{"value": keys_to_typing(value)}))
197+
198+
self.w3c_actions.key_action.key_down(value)
199+
self.w3c_actions.pointer_action.pause()
200+
222201
return self
223202

224203
def key_up(self, value, element=None):
@@ -237,13 +216,10 @@ def key_up(self, value, element=None):
237216
"""
238217
if element:
239218
self.click(element)
240-
if self._driver.w3c:
241-
self.w3c_actions.key_action.key_up(value)
242-
self.w3c_actions.pointer_action.pause()
243-
else:
244-
self._actions.append(lambda: self._driver.execute(
245-
Command.SEND_KEYS_TO_ACTIVE_ELEMENT,
246-
{"value": keys_to_typing(value)}))
219+
220+
self.w3c_actions.key_action.key_up(value)
221+
self.w3c_actions.pointer_action.pause()
222+
247223
return self
248224

249225
def move_by_offset(self, xoffset, yoffset):
@@ -254,14 +230,10 @@ def move_by_offset(self, xoffset, yoffset):
254230
- xoffset: X offset to move to, as a positive or negative integer.
255231
- yoffset: Y offset to move to, as a positive or negative integer.
256232
"""
257-
if self._driver.w3c:
258-
self.w3c_actions.pointer_action.move_by(xoffset, yoffset)
259-
self.w3c_actions.key_action.pause()
260-
else:
261-
self._actions.append(lambda: self._driver.execute(
262-
Command.MOVE_TO, {
263-
'xoffset': int(xoffset),
264-
'yoffset': int(yoffset)}))
233+
234+
self.w3c_actions.pointer_action.move_by(xoffset, yoffset)
235+
self.w3c_actions.key_action.pause()
236+
265237
return self
266238

267239
def move_to_element(self, to_element):
@@ -271,12 +243,10 @@ def move_to_element(self, to_element):
271243
:Args:
272244
- to_element: The WebElement to move to.
273245
"""
274-
if self._driver.w3c:
275-
self.w3c_actions.pointer_action.move_to(to_element)
276-
self.w3c_actions.key_action.pause()
277-
else:
278-
self._actions.append(lambda: self._driver.execute(
279-
Command.MOVE_TO, {'element': to_element.id}))
246+
247+
self.w3c_actions.pointer_action.move_to(to_element)
248+
self.w3c_actions.key_action.pause()
249+
280250
return self
281251

282252
def move_to_element_with_offset(self, to_element, xoffset, yoffset):
@@ -289,26 +259,20 @@ def move_to_element_with_offset(self, to_element, xoffset, yoffset):
289259
- xoffset: X offset to move to.
290260
- yoffset: Y offset to move to.
291261
"""
292-
if self._driver.w3c:
293-
self.w3c_actions.pointer_action.move_to(to_element,
294-
int(xoffset),
295-
int(yoffset))
296-
self.w3c_actions.key_action.pause()
297-
else:
298-
self._actions.append(
299-
lambda: self._driver.execute(Command.MOVE_TO, {
300-
'element': to_element.id,
301-
'xoffset': int(xoffset),
302-
'yoffset': int(yoffset)}))
262+
263+
self.w3c_actions.pointer_action.move_to(to_element,
264+
int(xoffset),
265+
int(yoffset))
266+
self.w3c_actions.key_action.pause()
267+
303268
return self
304269

305270
def pause(self, seconds):
306271
""" Pause all inputs for the specified duration in seconds """
307-
if self._driver.w3c:
308-
self.w3c_actions.pointer_action.pause(seconds)
309-
self.w3c_actions.key_action.pause(seconds)
310-
else:
311-
self._actions.append(lambda: time.sleep(seconds))
272+
273+
self.w3c_actions.pointer_action.pause(seconds)
274+
self.w3c_actions.key_action.pause(seconds)
275+
312276
return self
313277

314278
def release(self, on_element=None):
@@ -321,11 +285,10 @@ def release(self, on_element=None):
321285
"""
322286
if on_element:
323287
self.move_to_element(on_element)
324-
if self._driver.w3c:
325-
self.w3c_actions.pointer_action.release()
326-
self.w3c_actions.key_action.pause()
327-
else:
328-
self._actions.append(lambda: self._driver.execute(Command.MOUSE_UP, {}))
288+
289+
self.w3c_actions.pointer_action.release()
290+
self.w3c_actions.key_action.pause()
291+
329292
return self
330293

331294
def send_keys(self, *keys_to_send):
@@ -337,13 +300,11 @@ def send_keys(self, *keys_to_send):
337300
'Keys' class.
338301
"""
339302
typing = keys_to_typing(keys_to_send)
340-
if self._driver.w3c:
341-
for key in typing:
342-
self.key_down(key)
343-
self.key_up(key)
344-
else:
345-
self._actions.append(lambda: self._driver.execute(
346-
Command.SEND_KEYS_TO_ACTIVE_ELEMENT, {'value': typing}))
303+
304+
for key in typing:
305+
self.key_down(key)
306+
self.key_up(key)
307+
347308
return self
348309

349310
def send_keys_to_element(self, element, *keys_to_send):

py/selenium/webdriver/common/alert.py

+4-19
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,13 @@ def text(self):
6363
"""
6464
Gets the text of the Alert.
6565
"""
66-
if self.driver.w3c:
67-
return self.driver.execute(Command.W3C_GET_ALERT_TEXT)["value"]
68-
else:
69-
return self.driver.execute(Command.GET_ALERT_TEXT)["value"]
66+
return self.driver.execute(Command.W3C_GET_ALERT_TEXT)["value"]
7067

7168
def dismiss(self):
7269
"""
7370
Dismisses the alert available.
7471
"""
75-
if self.driver.w3c:
76-
self.driver.execute(Command.W3C_DISMISS_ALERT)
77-
else:
78-
self.driver.execute(Command.DISMISS_ALERT)
72+
self.driver.execute(Command.W3C_DISMISS_ALERT)
7973

8074
def accept(self):
8175
"""
@@ -84,22 +78,13 @@ def accept(self):
8478
Usage::
8579
Alert(driver).accept() # Confirm a alert dialog.
8680
"""
87-
if self.driver.w3c:
88-
self.driver.execute(Command.W3C_ACCEPT_ALERT)
89-
else:
90-
self.driver.execute(Command.ACCEPT_ALERT)
81+
self.driver.execute(Command.W3C_ACCEPT_ALERT)
9182

9283
def send_keys(self, keysToSend):
9384
"""
9485
Send Keys to the Alert.
9586
9687
:Args:
9788
- keysToSend: The text to be sent to Alert.
98-
99-
10089
"""
101-
if self.driver.w3c:
102-
self.driver.execute(Command.W3C_SET_ALERT_VALUE, {'value': keys_to_typing(keysToSend),
103-
'text': keysToSend})
104-
else:
105-
self.driver.execute(Command.SET_ALERT_VALUE, {'text': keysToSend})
90+
self.driver.execute(Command.W3C_SET_ALERT_VALUE, {'value': keys_to_typing(keysToSend), 'text': keysToSend})

py/selenium/webdriver/firefox/webdriver.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,7 @@ def quit(self) -> NoReturn:
195195
# We don't care about the message because something probably has gone wrong
196196
pass
197197

198-
if self.w3c:
199-
self.service.stop()
200-
else:
201-
self.binary.kill()
198+
self.service.stop()
202199

203200
if self.profile:
204201
try:

py/selenium/webdriver/remote/remote_connection.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ def execute(self, command, params):
387387
command_info = self._commands[command]
388388
assert command_info is not None, 'Unrecognised command %s' % command
389389
path = string.Template(command_info[1]).substitute(params)
390-
if hasattr(self, 'w3c') and self.w3c and isinstance(params, dict) and 'sessionId' in params:
390+
if isinstance(params, dict) and 'sessionId' in params:
391391
del params['sessionId']
392392
data = utils.dump_json(params)
393393
url = f"{self._url}{path}"

py/selenium/webdriver/remote/switch_to.py

+4-10
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ def active_element(self) -> WebElement:
4040
4141
element = driver.switch_to.active_element
4242
"""
43-
if self._driver.w3c:
44-
return self._driver.execute(Command.W3C_GET_ACTIVE_ELEMENT)['value']
45-
else:
46-
return self._driver.execute(Command.GET_ACTIVE_ELEMENT)['value']
43+
return self._driver.execute(Command.W3C_GET_ACTIVE_ELEMENT)['value']
4744

4845
@property
4946
def alert(self) -> Alert:
@@ -85,7 +82,7 @@ def frame(self, frame_reference) -> None:
8582
driver.switch_to.frame(1)
8683
driver.switch_to.frame(driver.find_elements(By.TAG_NAME, "iframe")[0])
8784
"""
88-
if isinstance(frame_reference, str) and self._driver.w3c:
85+
if isinstance(frame_reference, str):
8986
try:
9087
frame_reference = self._driver.find_element(By.ID, frame_reference)
9188
except NoSuchElementException:
@@ -134,11 +131,8 @@ def window(self, window_name) -> None:
134131
135132
driver.switch_to.window('main')
136133
"""
137-
if self._driver.w3c:
138-
self._w3c_window(window_name)
139-
return
140-
data = {'name': window_name}
141-
self._driver.execute(Command.SWITCH_TO_WINDOW, data)
134+
self._w3c_window(window_name)
135+
return
142136

143137
def _w3c_window(self, window_name):
144138
def send_handle(h):

0 commit comments

Comments
 (0)