Skip to content

Releases: NagiPragalathan/WebTorch

WebTorchX

03 Sep 08:05
Compare
Choose a tag to compare

WebTorch ( LCTP ) - Selenium Low-Code Web Testing Automation in Python

GitHub
GitHub contributors
GitHub top language
Telegram
Contributions welcome
Read FAQ
GitHub Repo stars
Twitter Follow

LCTP is a Selenium-based Low-Code Web Testing Automation tool in Python. It simplifies web testing using JSON configuration files, making it easy for testers and developers to automate test scenarios.

It's a powerful tool designed to streamline your testing efforts, and we're constantly improving it. However, please note that it's still a work in progress and not ready for production use.

Getting started ~ Supported opcodes ~
Build ~ Test ~
Report a bug
~ Questions

Fear of coding the testing files use the LCTP to relieve your complexity and upgrade your automation using LCTP for your application.

Setup:

Installation:

Install LCTP using the following command: pip install LCTP

Usage:


{ 
"setup":{
"driver_path" : "../../../path",
"auto_install":"true",
"browser":"Opera",
"get":"https://www.saucedemo.com/",
"window" : "maximize"
"screen_recorder":"true", "run_amd_wait":"true" }
}

The `setup` keyword is mandatory when using LCTP.
  1. driver_path: Provide the path to the Selenium Chrome driver executable.
  2. auto_install: Automatically download and install the Chrome driver if not found.
  3. browser: Specify the browser to be used (e.g., Chrome, Firefox).
  4. get: Define the URL of the landing page.
  5. window: It's recommended to use "maximize" to maximize the browser window. You can also use "minimize" if needed.
  6. screen_recorder: Enable screen recording of the testing session.
  7. run_and_wait: Wait for the browser window to run the program.

Auto_install can handle the following browsers:

        1. Chrome
        2. ChromeService
        3. Brave
        4. BraveService
        5. Firefox
        6. FirefoxService
        7. IE
        8. IEService
        9. Edge
        10. EdgeService
        11. Opera

Get Elements

Supported selectors: ['id', 'name', 'class', 'xpath']

'id': Get elements by their ID attribute.
'name': Get elements by their Name attribute.
'class': Get elements by their Class attribute.
'xpath': Get elements by their XPath.

Examples:

{   
    "setup":{
        "driver_path" : "../../../path",
        "auto_install":"true",
        "browser":"Opera",  //
        "get":"https://www.saucedemo.com/", //
        "window" : "maximize" //
    },
    "login_testing":{
        "fill_user_name" : {
            "id" : "user-name:sk:minimize",
            "data" : "standard_user"
        },
        "fill_password":{
            "id":"password:sk",
            "data":"secret_sauce"
        },
        "click_login_btn":{
            "id":"login-button:click"
        }
    },
 }

Click a list of Elements line by line

list_data = ['ls_id_clk', 'ls_name_clk', 'ls_xpath_clk']

{   
    "setup":{
        "driver_path" : "../../../path",
        "auto_install":"true",
        "browser":"Opera",  //
        "get":"https://www.saucedemo.com/", //
        "window" : "maximize" //
    },
    "login_testing":{
        "fill_user_name" : {
            "id" : "user-name:sk:minimize",
            "data" : "standard_user"
        },
        "fill_password":{
            "id":"password:sk",
            "data":"secret_sauce"
        },
        "click_login_btn":{
            "id":"login-button:click"
        }
    },
    "home_page":{
        "ls_id_clk" : ["add-to-cart-sauce-labs-backpack","add-to-cart-sauce-labs-bike-light","add-to-cart-sauce-labs-fleece-jacket"],
        "ls_name_clk" : ["add-to-cart-test.allthethings()-t-shirt-(red)","add-to-cart-sauce-labs-bolt-t-shirt","add-to-cart-sauce-labs-onesie"]
    },
    "view_cart":{
        "select_select_box":{
            "xpath":"//*[@id='header_container']/div[2]/div[2]/span/select:select_by_index@2"   
        },
        "nav_to_view_cart":{
            "xpath": "//*[@id='shopping_cart_container']/a:click:minimize",
            "window":  "maximize"
        }
    }
}

ScreenShot and ScreenRecorder

"screen_recorder":"true": Enable screen recording from the beginning to the end of the test, and it is implemented only in the setup query. The recordings are stored in the Test_Video folder path.

"take":"screenshot": Take a screenshot of the task at any line of code. The screenshots are stored in the ScreenShots folder path.

Keywords

Send Keys

  1. sk: Send keys to input fields. You can send keys using two ways: :sk and :sk@data. If :sk is used alone, then the data should be declared in another line.
  2. 'c&sk': Clear the input field and send keys, similar to sk.
 "fill_password":{
            "id":"password:sk",
            "data":"secret_sauce"
        },
 "fill_changepassword":{
            "id":"changepassword:c&sk",
            "data":"secret_sauce"
        },

Window Controller

  1. window: Use it with any field to maximize or minimize the browser window.
  2. set_window_position: Set the position of the browser window.
"nav_to_view_cart":{
            "xpath": "//*[@id='shopping_cart_container']/a:click:minimize",
            "window":  "maximize"
        }
"nav_to_view_cart":{
            "xpath": "//*[@id='shopping_cart_container']/a:click:minimize",
            "window":  "minimize"
        }

Selenium Low-Code Web Testing Automation Hot Keys

This Python module simplifies web testing with Selenium WebDriver using a low-code approach. It enables developers or testers to write test scenarios using JSON configuration files. Below is the documentation for the project, along with code examples for each section.

Table of Contents

  1. Installation
  2. Usage
  3. JSON Configuration
  4. Advanced Features
  5. Additional Example Configuration
  6. Contributing
  7. License

Installation

You can install this module using pip:

pip install selenium-webtest

Usage

To use this module, follow these steps:

  1. Create a JSON configuration file for your test scenarios.
  2. Utilize the WebTestExecutor class to execute your tests.

Here's how you can structure your JSON configuration file and perform different test actions:

Setup Configuration

The setup section in your JSON configuration file is used to set up your test environment. It includes the following parameters:

  • driver_path (str): The path to your WebDriver executable (e.g., ChromeDriver).
  • auto_install (str): Automatically install the WebDriver if it's not found (set to "true" to enable).
  • browser (str): Specify the browser to use (e.g., "Opera").
  • get (str): The URL of the website to be tested.
  • window (str): Maximize the browser window (set to "maximize" to enable).

Example:

{
    "setup": {
        "driver_path": "../../../path",
        "auto_install": "true",
        "browser": "Opera",
        "get": "https://www.saucedemo.com/",
        "window": "maximize"
    },
    ...
}

Login Testing

The login_testing section defines actions related to logging into a website. It includes the following parameters:

  • fill_user_name: Fill the username input field.
  • fill_password: Fill the password input field.
  • click_login_btn: Click the login button.

Example:

{
    "login_testing": {
        "fill_user_name": {
   ...
Read more