@@ -137,17 +137,18 @@ test.describe("JupyterLab Benchmark", () => {
137
137
await page . click ( "#filebrowser >> .jp-BreadCrumbs-home" ) ;
138
138
await page . dblclick ( `#filebrowser >> text=${ tmpPath } ` ) ;
139
139
140
+ const spinner = page . locator ( '[role="main"] >> .jp-SpinnerContent' ) ;
141
+
140
142
const openTime = await perf . measure ( async ( ) => {
141
- // Open the notebook and wait for the spinner
143
+ // Open the notebook and wait for the spinner to be hidden
142
144
await Promise . all ( [
143
- page . waitForSelector ( '[role=" main"] >> . jp-SpinnerContent' ) ,
145
+ page . getByRole ( ' main' ) . locator ( '. jp-Notebook' ) . locator ( 'visible=true' ) . waitFor ( ) ,
144
146
page . dblclick ( `#filebrowser >> text=${ filename } .ipynb` ) ,
145
147
] ) ;
146
148
147
- // Wait for spinner to be hidden
148
- await page . waitForSelector ( '[role="main"] >> .jp-SpinnerContent' , {
149
- state : "hidden" ,
150
- } ) ;
149
+ if ( ( await spinner . count ( ) ) > 0 ) {
150
+ spinner . waitFor ( { state : "hidden" } ) ;
151
+ }
151
152
} ) ;
152
153
153
154
// Check the notebook is correctly opened
@@ -186,16 +187,15 @@ test.describe("JupyterLab Benchmark", () => {
186
187
) ;
187
188
188
189
if ( STEPS . includes ( "switch-with-copy" ) ) {
189
- // Open copied notebook
190
+ // Open copied notebook to be hidden
190
191
await Promise . all ( [
191
- page . waitForSelector ( '[role=" main"] >> . jp-SpinnerContent' ) ,
192
+ page . getByRole ( ' main' ) . locator ( '. jp-Notebook' ) . locator ( 'visible=true' ) . waitFor ( ) ,
192
193
page . dblclick ( `#filebrowser >> text=${ filename } _copy.ipynb` ) ,
193
194
] ) ;
194
195
195
- // Wait for spinner to be hidden
196
- await page . waitForSelector ( '[role="main"] >> .jp-SpinnerContent' , {
197
- state : "hidden" ,
198
- } ) ;
196
+ if ( ( await spinner . count ( ) ) > 0 ) {
197
+ spinner . waitFor ( { state : "hidden" } ) ;
198
+ }
199
199
}
200
200
201
201
// Switch to test notebook
@@ -338,7 +338,7 @@ test.describe("JupyterLab Benchmark", () => {
338
338
const searchWord = generators [ file ] . search ;
339
339
if ( searchWord && STEPS . includes ( "search" ) ) {
340
340
await page . click ( 'li[role="menuitem"]:has-text("Edit")' ) ;
341
- await page . click ( 'ul[role="menu"] >> text=Find…' ) ;
341
+ await page . click ( '.lm-Menu ul[role="menu"] >> text=Find…' ) ;
342
342
343
343
// Force searching in cell outputs
344
344
await page . click ( 'button[title="Show Search Filters"]' ) ;
@@ -401,14 +401,14 @@ test.describe("JupyterLab Benchmark", () => {
401
401
402
402
// Shutdown the kernel to be sure it does not get in our way (especially for the close action)
403
403
await page . click ( 'li[role="menuitem"]:has-text("Kernel")' ) ;
404
- await page . click ( 'ul[role="menu"] >> text=Shut Down All Kernels…' ) ;
404
+ await page . click ( '.lm-Menu ul[role="menu"] >> text=Shut Down All Kernels…' ) ;
405
405
await page . click ( '.jp-Dialog-footer >> button:has-text("Shut Down All")' ) ;
406
406
407
407
if ( STEPS . includes ( "close" ) ) {
408
408
// Close notebook
409
409
await page . click ( 'li[role="menuitem"]:has-text("File")' ) ;
410
410
const closeTime = await perf . measure ( async ( ) => {
411
- await page . click ( 'ul[role="menu"] >> text=Close Tab' ) ;
411
+ await page . click ( '.lm-Menu ul[role="menu"] >> text=Close Tab' ) ;
412
412
// Revert changes so we don't measure saving
413
413
const dimissButton = page . locator ( 'button:has-text("Discard")' ) ;
414
414
if ( await dimissButton . isVisible ( { timeout : 50 } ) ) {
0 commit comments