File tree Expand file tree Collapse file tree 4 files changed +26
-0
lines changed
test-runner-webdriver/src Expand file tree Collapse file tree 4 files changed +26
-0
lines changed Original file line number Diff line number Diff line change 11import { TestRunnerPlugin } from '@web/test-runner-core' ;
22import type { ChromeLauncher } from '@web/test-runner-chrome' ;
33import type { PlaywrightLauncher } from '@web/test-runner-playwright' ;
4+ import type { WebdriverLauncher } from '@web/test-runner-webdriver' ;
45
56export interface Viewport {
67 width : number ;
@@ -50,6 +51,12 @@ export function setViewportPlugin(): TestRunnerPlugin {
5051 return true ;
5152 }
5253
54+ if ( session . browser . type === 'webdriver' ) {
55+ const browser = session . browser as WebdriverLauncher ;
56+ await browser . setWindowSize ( session . id , payload . width , payload . height ) ;
57+ return true ;
58+ }
59+
5360 throw new Error (
5461 `Setting viewport is not supported for browser type ${ session . browser . type } .` ,
5562 ) ;
Original file line number Diff line number Diff line change 11import { TestRunnerCoreConfig } from '@web/test-runner-core' ;
22import { Browser , Element } from 'webdriverio' ;
33import { validateBrowserResult } from './coverage.js' ;
4+ import { setWindowSize } from 'webdriverio/build/commands/browser.js' ;
45
56/**
67 * Manages tests to be executed in iframes on a page.
@@ -155,6 +156,13 @@ export class IFrameManager {
155156 return this . driver . keys ( keys ) ;
156157 }
157158
159+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
160+ async setWindowSize ( _ : string , _width : number , _height : number ) {
161+ throw new Error (
162+ 'Unsupported operation. In order to set window size in Webdriver, set "concurrency" to 1.' ,
163+ ) ;
164+ }
165+
158166 // eslint-disable-next-line @typescript-eslint/no-unused-vars
159167 async performActions ( _ : string , _actions : object [ ] ) {
160168 throw new Error (
Original file line number Diff line number Diff line change @@ -80,6 +80,10 @@ export class SessionManager {
8080 return { testCoverage : this . config . coverage ? testCoverage : undefined } ;
8181 }
8282
83+ async setWindowSize ( _ : string , width : number , height : number ) {
84+ return this . driver . setWindowSize ( width , height ) ;
85+ }
86+
8387 async performActions ( _ : string , actions : object [ ] ) {
8488 return this . driver . performActions ( actions ) ;
8589 }
Original file line number Diff line number Diff line change @@ -229,6 +229,13 @@ export class WebdriverLauncher implements BrowserLauncher {
229229 return this . driverManager . sendKeys ( sessionId , keys ) ;
230230 }
231231
232+ setWindowSize ( sessionId : string , width : number , height : number ) {
233+ if ( ! this . driverManager ) {
234+ throw new Error ( 'Not initialized' ) ;
235+ }
236+ return this . driverManager . setWindowSize ( sessionId , width , height ) ;
237+ }
238+
232239 takeScreenshot ( sessionId : string , locator : string ) {
233240 if ( ! this . driverManager ) {
234241 throw new Error ( 'Not initialized' ) ;
You can’t perform that action at this time.
0 commit comments