@@ -79,10 +79,7 @@ def __init__(
79
79
self ._dispatcher_fiber = frame ._connection ._dispatcher_fiber
80
80
81
81
if has_text :
82
- text_selector = "text=" + escape_for_text_selector (has_text , exact = False )
83
- self ._selector += (
84
- f" >> internal:has={ json .dumps (text_selector , ensure_ascii = False )} "
85
- )
82
+ self ._selector += f" >> internal:has-text={ escape_for_text_selector (has_text , exact = False )} "
86
83
87
84
if has :
88
85
if has ._frame != frame :
@@ -200,6 +197,14 @@ async def fill(
200
197
params = locals_to_params (locals ())
201
198
return await self ._frame .fill (self ._selector , strict = True , ** params )
202
199
200
+ async def clear (
201
+ self ,
202
+ timeout : float = None ,
203
+ noWaitAfter : bool = None ,
204
+ force : bool = None ,
205
+ ) -> None :
206
+ await self .fill ("" , timeout = timeout , noWaitAfter = noWaitAfter , force = force )
207
+
203
208
def locator (
204
209
self ,
205
210
selector : str ,
@@ -311,6 +316,16 @@ async def focus(self, timeout: float = None) -> None:
311
316
params = locals_to_params (locals ())
312
317
return await self ._frame .focus (self ._selector , strict = True , ** params )
313
318
319
+ async def blur (self , timeout : float = None ) -> None :
320
+ await self ._frame ._channel .send (
321
+ "blur" ,
322
+ {
323
+ "selector" : self ._selector ,
324
+ "strict" : True ,
325
+ ** locals_to_params (locals ()),
326
+ },
327
+ )
328
+
314
329
async def count (
315
330
self ,
316
331
) -> int :
@@ -345,6 +360,7 @@ async def hover(
345
360
modifiers : List [KeyboardModifier ] = None ,
346
361
position : Position = None ,
347
362
timeout : float = None ,
363
+ noWaitAfter : bool = None ,
348
364
force : bool = None ,
349
365
trial : bool = None ,
350
366
) -> None :
@@ -762,7 +778,7 @@ def get_by_placeholder_selector(
762
778
763
779
764
780
def get_by_text_selector (text : Union [str , Pattern [str ]], exact : bool = None ) -> str :
765
- return "text=" + escape_for_text_selector (text , exact = exact )
781
+ return "internal: text=" + escape_for_text_selector (text , exact = exact )
766
782
767
783
768
784
def get_by_role_selector (
@@ -801,4 +817,4 @@ def get_by_role_selector(
801
817
if pressed is not None :
802
818
props .append (("pressed" , str (pressed )))
803
819
props_str = "" .join ([f"[{ t [0 ]} ={ t [1 ]} ]" for t in props ])
804
- return f"role={ role } { props_str } "
820
+ return f"internal: role={ role } { props_str } "
0 commit comments