@@ -91,6 +91,57 @@ async def handler() -> None:
9191 await expect (page .locator ("#interstitial" )).not_to_be_visible ()
9292
9393
94+ async def test_should_work_with_keyword_only_handler (
95+ page : Page , server : Server
96+ ) -> None :
97+ await page .goto (server .PREFIX + "/input/handle-locator.html" )
98+
99+ called = False
100+
101+ async def handler (* , timeout : object = None ) -> None :
102+ nonlocal called
103+ assert timeout is None
104+ called = True
105+ await page .locator ("#close" ).click ()
106+
107+ await page .add_locator_handler (
108+ page .get_by_text ("This interstitial covers the button" ), handler
109+ )
110+
111+ await page .locator ("#aside" ).hover ()
112+ await page .evaluate (
113+ '() => { window.clicked = 0; window.setupAnnoyingInterstitial("mouseover", 1); }'
114+ )
115+ await page .locator ("#target" ).click ()
116+ assert called
117+ assert await page .evaluate ("window.clicked" ) == 1
118+ await expect (page .locator ("#interstitial" )).not_to_be_visible ()
119+
120+
121+ async def test_should_work_with_varargs_handler (page : Page , server : Server ) -> None :
122+ await page .goto (server .PREFIX + "/input/handle-locator.html" )
123+
124+ called = False
125+ original_locator = page .get_by_text ("This interstitial covers the button" )
126+
127+ async def handler (* locators : Locator ) -> None :
128+ nonlocal called
129+ assert locators == (original_locator ,)
130+ called = True
131+ await page .locator ("#close" ).click ()
132+
133+ await page .add_locator_handler (original_locator , handler )
134+
135+ await page .locator ("#aside" ).hover ()
136+ await page .evaluate (
137+ '() => { window.clicked = 0; window.setupAnnoyingInterstitial("mouseover", 1); }'
138+ )
139+ await page .locator ("#target" ).click ()
140+ assert called
141+ assert await page .evaluate ("window.clicked" ) == 1
142+ await expect (page .locator ("#interstitial" )).not_to_be_visible ()
143+
144+
94145async def test_should_work_with_locator_hover (page : Page , server : Server ) -> None :
95146 await page .goto (server .PREFIX + "/input/handle-locator.html" )
96147
0 commit comments