Back to Repositories

Validating Window Size Configuration in NW.js

This test suite validates window size specifications defined in package.json for NW.js applications using Selenium WebDriver. It ensures proper initialization and rendering of window dimensions through automated browser testing.

Test Coverage Overview

The test suite focuses on verifying window size configurations specified in package.json are correctly applied during application launch. Key functionality includes:

  • Window dimension validation
  • Package.json configuration parsing
  • Cross-browser compatibility checks
  • Element positioning verification

Implementation Analysis

The implementation leverages Selenium WebDriver with Python to automate browser interactions and validate window properties. The test employs Chrome options for NW.js app loading and implements implicit waits for reliable element detection.

Key patterns include custom Chrome driver configuration, element ID-based assertions, and dimension validation logic.

Technical Details

  • Selenium WebDriver for browser automation
  • Chrome Options for NW.js app configuration
  • Python test framework integration
  • Custom utility functions for element waiting
  • Environment-based ChromeDriver path configuration

Best Practices Demonstrated

The test demonstrates robust automation practices including proper resource cleanup, explicit element waiting strategies, and environment-aware configuration. Notable practices include:

  • Try-finally block for driver cleanup
  • Implicit wait implementation
  • Flexible assertion patterns
  • Modular test utility integration

nwjs/nwJs

test/sanity/issue5093-window-size-match-package-json/test.py

            
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from nw_util import *

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("nwapp=" + os.path.dirname(os.path.abspath(__file__)))

driver = webdriver.Chrome(executable_path=os.environ['CHROMEDRIVER'], chrome_options=chrome_options)
driver.implicitly_wait(2)
try:
    print(driver.current_url)
    res = wait_for_element_id(driver, "yellow")
    print(res)
    assert("400" in res or "401" in res)
    assert("300" in res or "301" in res)
finally:
    driver.quit()