npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

kaodimwebdriverioframework

v1.0.2

Published

kaodimWebdriverIOFramework

Readme

Kaodim WebDriverIO Framework

Installation

Install the latest version of Node.js on your system.

Clone the project and run the following command in the root directory of the project:

$ npm install

This installs all project dependencies

Configuration

Tests are defined to be run from the tests directory. Project specifications and definitions are found inside the config file (wdio.conf.js)

    specs: [
        './tests/*.js'
    ]

Page object definitions also exists inside the config file. All files, defining components to be tested, should end with the suffix shown below:

    exclude: [
         './pageObjects/*_Page.js'
    ]

Page object files are excluded from the test but are imported from and instantiated (as they contain classes) from the test files.

Development

All commands can be found in the package.json. The most important are:

To Run tests:

$ npm test

frameworkUpdate

kaodimWebdriverIOFramework

QA Automation Framework - Selenium WebdriverIO Mocha Based Framework for Kaodim web and apps

Have made changes on the framework to drive the testing based on a config file

Advantages of the config file driven testing: All the configurations related to environment(alpha, beta, omega), country, apps (ios/android/web), and also CI can be configured at one place which would help multiple configs at different places(can be painful and also may lose track).

Somethings which needs attention: I have made use of babel js compiler to achieve backward compatibility of JS with browsers
Using chance library for random variable generation common-errors library to enable configuring all errors at a single place dotenv library to enable working with config files

How to use the config file and how does the framework actually work - A brief insight We have a .env file which is our config file This file has many keywords or environment variable like what it is popularly called. Each of these keywords can be set to various pre-listed/agreed possible values to make our test runner run those particular scenarios in a way which the tester intends it to. .env.example is the template which actually be updated and pushed to master(github) when there is need and .env is for local use. environment.js has the default configuration values for all the env variables which will be used by files in the framework src directory serves as the main directory for the framework scripts below is the new folder structure cfg --> has the capabilities for all the clients (chrome, android, ios, ie, safari, firefox) features --> Is where the features file will reside. Format for naming a feature file is feature name.feature for instance auth.feature step-definitions --> This is where the steps for the feature scenarios reside. The naming convention followed for a steps file is featureName-steps.js for example auth-steps.js support directory holds page objects and all supporting util files for script implementation. here we have subfolders based on the platforms(android, ios, web) of execution. I have made use of appFactory to direct the cases for each execution to the proper platform files. app.js and app-factory.js helps here And the platform specific pages reside inside the respective platform subfolders screen.js is the basepage for all web screens/pages which will be used for common functions, also can include common elements if present across multiple pages.

Hope this notes helps with a basic understanding of the framework change and the framework itself helps us with a scalable and maintainable design.

Happy coding!!