@@ -21,20 +21,21 @@ const assert = require('node:assert')
2121const { suite } = require ( '../../lib/test' )
2222const { Browser } = require ( 'selenium-webdriver' )
2323const BrowserBiDi = require ( 'selenium-webdriver/bidi/browser' )
24+ const { WindowState } = require ( 'selenium-webdriver/bidi/browser' )
2425
2526suite (
2627 function ( env ) {
27- describe ( 'BiDi Browser' , function ( ) {
28- let driver
28+ let driver
2929
30- beforeEach ( async function ( ) {
31- driver = await env . builder ( ) . build ( )
32- } )
30+ beforeEach ( async function ( ) {
31+ driver = await env . builder ( ) . build ( )
32+ } )
3333
34- afterEach ( function ( ) {
35- return driver . quit ( )
36- } )
34+ afterEach ( function ( ) {
35+ return driver . quit ( )
36+ } )
3737
38+ describe ( 'BiDi Browser' , function ( ) {
3839 it ( 'can create a user context' , async function ( ) {
3940 const browser = await BrowserBiDi ( driver )
4041
@@ -79,6 +80,25 @@ suite(
7980 await browser . removeUserContext ( userContext1 )
8081 } )
8182 } )
83+
84+ describe ( 'Client Windows' , function ( ) {
85+ it ( 'can get client windows' , async function ( ) {
86+ const browser = await BrowserBiDi ( driver )
87+ const windows = await browser . getClientWindows ( )
88+
89+ assert ( Array . isArray ( windows ) )
90+ assert ( windows . length > 0 )
91+
92+ const window = windows [ 0 ]
93+ assert ( window . clientWindow )
94+ assert ( Object . values ( WindowState ) . includes ( window . state ) )
95+ assert ( Number . isInteger ( window . width ) && window . width > 0 )
96+ assert ( Number . isInteger ( window . height ) && window . height > 0 )
97+ assert ( Number . isInteger ( window . x ) )
98+ assert ( Number . isInteger ( window . y ) )
99+ assert ( typeof window . active === 'boolean' )
100+ } )
101+ } )
82102 } ,
83103 { browsers : [ Browser . FIREFOX , Browser . CHROME , Browser . EDGE ] } ,
84104)
0 commit comments