CodeceptJS icon indicating copy to clipboard operation
CodeceptJS copied to clipboard

[Codecept Playwright] - Not able to maximize the window. windowSize = "maximize" not working properly

Open HarikrishnanVK opened this issue 1 year ago • 4 comments

I want to maximize the window where my app fit to the entire screen perfectly

By using the option (windowSize = "maximize") in conf.js file does not work.

  • CodeceptJS version: 3.6.7
  • NodeJS Version: 20.12.2
  • Operating System: Windows 11
  • playwright
  • Configuration file: const { default: test } = require("playwright/test");

exports.config = { output: './output', tests: './other_tests/**.test.js', helpers: { Playwright: { browser: 'chromium', url: 'localhost:3000', show: true, getPageTimeout: 180000, waitForTimeout: 180000, waitForNavigation: "networkidle0", restart: "session", keepBrowserState: true, keepCookies: true, windowSize: "maximize", chromium: { args: ['--start-maximized'], viewport: null } }, Generics: { require: "./helpers/generics.js" }, ExpectHelper: {} }, include: { I: './steps_file.js' }, timeout: 560, gherkin: { features: './features/*.feature', steps: ['./step_definitions/steps.js'], }, plugins: { screenshotOnFail: { enabled: true }, tryTo: { enabled: true }, allure: { enabled: true, require: '@codeceptjs/allure-legacy', } }, name: 'test_Automation' }

I even tried to extend playwright method where I able to maximize the window but not sure how to reuse the new context as I need to close the one created by codeceptjs fixture.

const { chromium } = require('playwright');

Feature('Maximize Browser Window');

Scenario('Maximize window using Playwright', async ({ I }) => { I.amOnPage('http://localhost'); // Replace with your URL

I.usePlaywrightTo('maximize browser window', async ({ page }) => { // Close the existing browser context const browser = page.context().browser(); await browser.close();

// Launch a new browser instance with the --start-maximized argument
const newBrowser = await chromium.launch({
  headless: false,
  args: ["--start-maximized"],
});

// Create a new browser context with a maximized viewport
const context = await newBrowser.newContext({ viewport: null });
const newPage = await context.newPage();

// Navigate to the specified URL
await newPage.goto('http://localhost'); // Replace with your URL

// Set the new page for further CodeceptJS steps
I._setPage(newPage);

});

// Continue with your test steps using the new page I.see('Welcome'); });

HarikrishnanVK avatar Nov 26 '24 13:11 HarikrishnanVK

Hi .. pls import const { setWindowSize } = require ("@codeceptjs/configure") and set the width and height.

Replace windowSize: "maximize" with setWindowSize: setWindowSize(1280, 720)

myrepojuly avatar Nov 29 '24 14:11 myrepojuly

@myrepojuly1987 Setting the viewport size doesn't fit the application exactly to the full screen even though I provided the exact resolution (19200x1200) .

There is a option in playwright where you can set the viewport as null and maximized argument would do the needful. I am looking for a similar functionality in codecept.io.

HarikrishnanVK avatar Dec 18 '24 14:12 HarikrishnanVK

I assume you want to pass args: ["--start-maximized"]

Can you try passing as shown under Example 5 here https://codecept.io/helpers/Playwright/#properties

myrepojuly avatar Dec 18 '24 14:12 myrepojuly

@myrepojuly1987 Tried. But no luck

Image

Below is the resolution being used every time even though we provide argument to maximize. Looks like some missing implementation.

Image

HarikrishnanVK avatar Jan 24 '25 09:01 HarikrishnanVK