@@ -216,6 +216,49 @@ def test_pen_pointer_properties(driver, pages):
216
216
assert events [6 ]["twist" ] == 0
217
217
218
218
219
+ @pytest .mark .xfail_firefox
220
+ @pytest .mark .xfail_remote
221
+ def test_touch_pointer_properties (driver , pages ):
222
+ pages .load ("pointerActionsPage.html" )
223
+ pointerArea = driver .find_element (By .CSS_SELECTOR , "#pointerArea" )
224
+ center = _get_inview_center (pointerArea .rect , _get_viewport_rect (driver ))
225
+ touch_input = PointerInput (interaction .POINTER_TOUCH , "touch" )
226
+ touch_chain = ActionBuilder (driver , mouse = touch_input )
227
+ touch_chain .pointer_action .move_to (pointerArea , x = 50 , y = 25 ) \
228
+ .pointer_down (width = 23 , height = 31 , pressure = 0.78 , tilt_x = 21 , tilt_y = - 8 , twist = 355 ) \
229
+ .move_to (pointerArea , x = 60 , y = 35 , width = 39 , height = 35 , pressure = 0.91 , tilt_x = - 19 , tilt_y = 62 , twist = 345 ) \
230
+ .pointer_up () \
231
+ .move_to (pointerArea , x = 80 , y = 50 )
232
+ touch_chain .perform ()
233
+ events = _get_events (driver )
234
+ assert len (events ) == 7
235
+ event_types = [e ["type" ] for e in events ]
236
+ assert ["pointerover" , "pointerenter" , "pointerdown" , "pointermove" ,
237
+ "pointerup" , "pointerout" , "pointerleave" ] == event_types
238
+ assert events [2 ]["type" ] == "pointerdown"
239
+ assert events [2 ]["pageX" ] == pytest .approx (center ["x" ], abs = 1.0 )
240
+ assert events [2 ]["pageY" ] == pytest .approx (center ["y" ], abs = 1.0 )
241
+ assert events [2 ]["target" ] == "pointerArea"
242
+ assert events [2 ]["pointerType" ] == "touch"
243
+ assert round (events [2 ]["width" ], 2 ) == 23
244
+ assert round (events [2 ]["height" ], 2 ) == 31
245
+ assert round (events [2 ]["pressure" ], 2 ) == 0.78
246
+ assert events [2 ]["tiltX" ] == 21
247
+ assert events [2 ]["tiltY" ] == - 8
248
+ assert events [2 ]["twist" ] == 355
249
+ assert events [3 ]["type" ] == "pointermove"
250
+ assert events [3 ]["pageX" ] == pytest .approx (center ["x" ] + 10 , abs = 1.0 )
251
+ assert events [3 ]["pageY" ] == pytest .approx (center ["y" ] + 10 , abs = 1.0 )
252
+ assert events [3 ]["target" ] == "pointerArea"
253
+ assert events [3 ]["pointerType" ] == "touch"
254
+ assert round (events [3 ]["width" ], 2 ) == 39
255
+ assert round (events [3 ]["height" ], 2 ) == 35
256
+ assert round (events [3 ]["pressure" ], 2 ) == 0.91
257
+ assert events [3 ]["tiltX" ] == - 19
258
+ assert events [3 ]["tiltY" ] == 62
259
+ assert events [3 ]["twist" ] == 345
260
+
261
+
219
262
def _performDragAndDropWithMouse (driver , pages ):
220
263
"""Copied from org.openqa.selenium.interactions.TestBasicMouseInterface."""
221
264
pages .load ("draggableLists.html" )
0 commit comments