Sunday, February 8, 2026

Salax: Automating Secure Messaging Web Client with Playwright




In this article we will discuss on how to automate SalaX secure messaging web client with Playwright. 

Today’s market offers many secure messaging applications, but the SalaX Secure Messaging stands out as a solution built for organisations that require trust, control, and enterprise-grade security.

The SalaX Secure Messaging client delivers end-to-end encrypted communication while giving organisations full ownership over their messaging infrastructure. Designed for real-world enterprise and government use, it combines strong security with practical usability across platforms.

SalaX is available on Windows, macOS, Android, iOS, web, and desktop, enabling secure communication without compromising consistency or user experience—regardless of the device.


Let’s discuss what SalaX Secure Messaging is and where it originated.

What Is SalaX Secure Messaging?


SalaX Secure Messaging is SSH Communications Security’s enterprise-grade secure messaging solution, designed to give organisations complete control over their instant communicationsSalaX is built for security-first organisations that require confidentiality, sovereignty, and interoperability, without compromising usability.



About SSH:

SSH Communications Security is a Finland-based cybersecurity company with decades of expertise in secure communications.

  • It was founded in Finland and headquarters are in Helsinki.

  • The company originated from the creation of the SSH (Secure Shell) protocol by Finnish researcher Tatu Ylรถnen.

Website:https://www.ssh.com/


Technology Behind SalaX Secure Messaging:-

SalaX Secure Messaging is developed by SSH using:

  • Element communications platform

  • Matrix open standard, a decentralised and open protocol for secure and interoperable communications

This architecture enables strong end-to-end encryption, federation capabilities, and long-term scalability while avoiding vendor lock-in.

Because it is based on open standards, SalaX supports secure collaboration across organisations while still allowing full control over data, infrastructure, and policies.


Key Strengths of SalaX Secure Messaging:-

  • End-to-end encrypted communications

  • Full organisational control over users, data, and infrastructure

  • Decentralised architecture based on open standards

  • Interoperable and future-proof messaging ecosystem

  • Cross-platform support (Windows, macOS, iOS, Android, desktop, and web)

  • Backed by SSH’s cryptographic expertise and security heritage


Why SalaX Matters

In a world where messaging platforms are often centralized, opaque, and outside organisational control, SalaX Secure Messaging offers a different approach:

"Secure, sovereign, and standards-based communication — built for organisations that take security seriously."

This makes SalaX especially suitable for governments, defense organisations, regulated industries, and enterprises handling sensitive information.

Links:

https://securemessaging.docs.ssh.com/

https://www.ssh.com/products/secure-messaging

Free-trialhttps://info.ssh.com/salax-messaging-free-trial


I have used the SalaX web messaging client https://chat.ssh.net/ for building the test automation frameworkLets dive into our technical topic with Playwright.


Why Playwright for Secure Messaging?

Secure messaging applications are complex by nature. They involve:

  • Multi-step authentication flows

  • Encrypted sessions and device verification

  • Real-time message delivery

  • Multiple users interacting simultaneously

  • Frequent UI state changes and dialogs


The Testing Challenge

Testing a secure messaging client is very different from testing a traditional web app. Some of the real-world challenges include:

  • Multi-step login with security keys

  • Post-login security prompts and warnings

  • Dynamic room lists and conversations

  • Real-time message synchronization between users

  • Ensuring complete session isolation between users

To address this, I designed a Playwright automation framework that focuses on real user behaviour rather than simple UI interactions.

I used Playwright’s accessibility-first locators (getByRole, getByLabel, getByText), which tend to be more stable and less prone to flakiness than brittle CSS/XPath selectors.


Login Flow

Login to the App : https://chat.ssh.net/













User is on the home page types message in the message box and sends to other user




Realistic Secure Messaging Scenarios

A key test case implemented in the framework validates bi-directional messaging:

  1. Two users log in simultaneously, verify their Security Key/Access codes each time.

  2. Both open the same direct message (DM)

  3. Messages are sent B and  A B

  4. (Usersa0008993 and User = tg0008993)

  5. Each user verifies message delivery in real time

User B --> A




User A --> B



For example, say if User B is Offline and User A is logged in and sends message to User B, then we see these uncrypted messages for User B, as user B is offline. meaning both users should be online federating with the same home server to view each of their messages otherwise the messages will be showed up as Unencrypted messages


User A Sends message to User B when User B is Offline.



When User B is back to online, he/she will see the messages as Unencrypted messages.


This mirrors how secure messaging is actually used in production — not just how the UI looks.


GitHub Repo:

https://github.com/JayKishoreDuvvuri/playwright-salax-secure-messaging.git

GitHub Actions (CI):

https://github.com/JayKishoreDuvvuri/playwright-salax-secure-messaging/actions


Limitations of Test Automation

While Playwright is well-suited for automating secure messaging workflows, some features are not practical to automate using browser-based testing tools.

  • Video and audio calls rely on real-time media streams, hardware access, and browser permissions.

  • Screen sharing and device interactions depend on OS-level controls outside Playwright’s scope.

  • Security-sensitive flows such as device trust and encryption verification cannot be fully validated via UI automation alone.

Test automation is ideal for messaging and authentication, but media features and encryption need manual testing.



Final Thoughts

Building a Playwright automation framework for the secure messaging web client has been a great example of how modern test tooling can support high-security applications.

If you’re working with:

  • Secure messaging platforms

  • Real-time web applications

  • Multi-user workflows

Playwright is absolutely worth considering.

Secure software deserves secure testing — and automation plays a big role in making that happen.

Happy Automation testing Guys :)!

Thursday, December 18, 2025

Locator Labs — An End-to-End Locator Tooling Ecosystem for Modern QA Engineers



First of all, A big thanks to "Naveen Khuntetafor building Locator Labs—an amazing and thoughtfully designed tool that significantly simplifies locator creation and maintenance for QA engineers and an incredibly useful tool for modern test automation.

In my last blog, I covered Locator Labs with a focus on its Chrome browser extension only. This article goes a step further by exploring all three installation options of Locator Labs and highlighting how they benefit QA engineers in building reliable test automation.

1. What is Locator Labs?

Locator Labs is a tooling ecosystem that helps QA engineers and automation developers:

  • Inspect web elements visually

  • Generate multiple locator strategies:

    • Playwright (getByRole, getByLabel, getByTestId, CSS, XPath)

    • Selenium (CSS, XPath, Relative Locators)

  • Validate locators instantly on the page

  • Export working locators directly into Page Object–ready code

Supported Automation Frameworks

✔ Playwright (JavaScript / TypeScript / Python)
✔ Selenium (Java / Python / C#)

๐Ÿ“˜ Diagram: Where Locator Labs Fits in the Automation Flow



2. Locator Labs Components Overview

Locator Labs is not just a browser extension. It consists of three complementary components:

  1. Chrome / Edge Extension – For visual inspection and locator generation

  2. Desktop Setup App – For managing projects, frameworks, and exports

  3. NPM Package – For seamless integration with Playwright projects

๐Ÿ“˜ Diagram: Locator Labs Tooling Ecosystem



3. Installation Guide – Browser Extension

Follow these steps to install Locator Labs in Chrome or Edge:

  1. Open the Chrome Web Store page

  2. Click Add to Chrome

  3. Approve the permission prompt

  4. Pin the extension to your toolbar for quick access

  5. Navigate to any web page and click the Locator Labs icon

๐Ÿงญ Diagram: Installation Steps Overview




4. Desktop Setup App (Locator Labs Desktop)

The Locator Labs Desktop App enhances the extension by providing a centralized setup for your automation projects.

Why Use the Desktop App?

  • Configure your preferred automation framework (Playwright / Selenium)

  • Select language (JS, TS, Java, Python, C#)

  • Define Page Object structure and naming conventions

  • Manage exported locators across projects

  • Keep locator standards consistent across teams

Typical Workflow

  1. Install and open the Locator Labs Desktop App

  2. Configure your automation framework and language

  3. Connect it with the browser extension

  4. Export locators directly into your project structure

๐Ÿ“˜ Diagram: Desktop App Integration Flow



5. NPM Package for Playwright Integration

For Playwright users, Locator Labs also provides an npm package that integrates smoothly into existing test automation setups.

Benefits of the NPM Package

  • Easy installation into Playwright projects

  • Standardised locator handling

  • Cleaner Page Object Model generation

  • Faster onboarding for new team members

Installation Command

npx locatorlabs

The npm package works alongside the extension and desktop app to:

  • Consume exported locators

  • Organise them into Page Objects

  • Keep locators maintainable and reusable

๐Ÿ“˜ Diagram: NPM Package in Playwright Workflow



6. Using Locator Labs to Generate Locators

Once installed, generating locators is incredibly simple.

Step 1 — Open Your Target Web Page

Navigate to the application you want to automate (for example, a React app).

Step 2 — Activate Locator Labs

Click the Locator Labs icon in the browser toolbar. A side panel or overlay appears.

Step 3 — Hover and Select Elements

Hover over any element on the page. Locator Labs highlights it and instantly suggests locators such as:

  • Playwright getByRole()

  • getByLabel()

  • getByTestId()

  • CSS selectors

  • XPath

๐Ÿ“˜ Diagram: How Locator Labs Generates Locators

Step 4 — Copy or Export

  • Copy the locator directly

  • Or export it to your configured framework via the Desktop App or npm setup



7. Validating Locators in Real Time

Locator Labs allows instant validation:

  • ✅ Clicking a locator highlights the target element

  • ❌ If multiple matches exist, it shows the count and highlights all matches

This makes it easy to refine locators and avoid flaky selectors.


8. Exporting to Your Automation Framework

After validation, export locators into ready-to-use code.

Playwright Export Example

this.loginButton = page.getByRole('button', { name: 'Login' });

Selenium Export Example

By loginButton = By.xpath("//button[text()='Login']");

Exports align with your Page Object Model structure when using the Desktop App or npm package.


9. Best Practices with Locator Labs

Prefer semantic locators (getByTestId, getByRole, getByLabel)
๐Ÿงฉ Re-validate locators after UI changes
๐Ÿง  Avoid long, brittle XPaths
๐Ÿ” Store locators in Page Object Models
๐Ÿงพ Use annotations and screenshots for reporting

๐Ÿ“˜ Diagram: Best Practices with Locator Labs in a QA Workflow




10. Conclusion

Locator Labs is one of the most practical productivity tools available for test automation engineers.

By combining:

  • A powerful browser extension

  • A structured desktop setup app

  • An npm package for Playwright integration

It significantly simplifies how we find, validate, and maintain locators across Playwright and Selenium projects.

If you’ve ever struggled with flaky selectors, Locator Labs can drastically reduce that pain.

Try it in your next automation sprint — it might just become your go-to locator companion.

Happy Automation Testing Guys :) ๐Ÿš€ !


Thursday, October 30, 2025

Locator Labs — A Smart Way to Find Locators for Playwright & Selenium

 


In this Blog, We will discuss about "Locator Labs" on finding reliable and efficient locators to build your test automation. First of all thanks to "Naveen Khunteta" in building this amazing chrome extension.

To start with, 

1. What is Locator Labs?

Locator Labs is a Chrome extension that lets QA engineers and automation developers:

  • Inspect web elements visually

  • Generate multiple locator strategies (getByRole, getByLabel, CSS, XPath)

  • Validate locators on the page instantly

  • Export working locators into Playwright or Selenium Page Object code

Supports:
✔ Playwright (JavaScript / TypeScript / Python)
✔ Selenium (Java / Python / C#)

๐Ÿ“˜ Diagram: “Where Locator Labs Fits in the Automation Flow”


2. Installation Guide

Follow these steps to install Locator Labs in your Chrome or Edge browser:

  1. Open the Chrome Web Store page

  2. Click Add to Chrome

  3. Approve the permission prompt

  4. Once installed, pin the extension to your toolbar for quick access

  5. Navigate to any web page and click the Locator Labs icon

๐Ÿงญ Diagram: “Installation Steps Overview”











3. Using Locator Labs to Generate Locators

Once installed, it’s incredibly easy to start finding locators.

Step 1 — Open your target web page

Go to the page you want to automate (for example, your React app).

Step 2 — Activate Locator Labs

Click the Locator Labs icon in the Chrome toolbar. A side panel or overlay appears.

Step 3 — Hover and Select

Hover your mouse over any element. Locator Labs highlights it and instantly shows suggested locators like:






Step 4 — Copy or Export

Copy the locator or export it into a Page Object in your desired framework.

๐Ÿงฎ Diagram: “How Locator Labs Generates Locators”




















4. Validating Locators in Real Time

Locator Labs also lets you validate your locators instantly.

✅ Click on a suggested locator → the element is highlighted on the page
❌ If multiple matches appear, it shows the count and highlights all of them

You can refine your locator using filters or choose alternate strategies.


5. Exporting to Your Automation Framework

After validation, export the locator into ready-to-use automation code.

  • Playwright Export Example


  • Selenium Export Example


 6. Best Practices with Locator Labs

  • ✅ Prefer semantic locators (getByTestIdgetByRole, getByLabel) for stability

  • ๐Ÿงฉ Re-validate locators after UI changes

  • ๐Ÿง  Don’t rely only on long XPaths

  • ๐Ÿ” Store all locators in Page Object Models

  • ๐Ÿงพ Use built-in annotation/screenshot for reporting


๐Ÿช„ Diagram: “Locator Labs in a QA Workflow”












 7. Conclusion

Locator Labs is one of the most practical Chrome extensions for test automation engineers.
It simplifies finding, validating, and maintaining locators across Playwright and Selenium projects.

It is a helpful productivity-tool for test automation teams using Playwright or Selenium. It bridges the gap between manual locator hunting and robust, maintainable automation code. By generating smart suggestions, validating them in real-time, exporting ready-to-use Page Objects, and supporting relative locators (for Selenium) as well as typical locators (for Playwright), it can save a lot of time and reduce flakiness.

If you’ve ever struggled with flaky selectors, this tool can drastically reduce that pain.
Try it on your next automation sprint — it might just become your go-to locator companion.

If you’re regularly writing UI tests for your web application, incorporating a tool like Locator Labs can make your locator creation workflow nicer and more reliable.

Happy Automation testing Guys :)!


Wednesday, October 15, 2025

Playwright MCP Vs other AI Tools

 

In this Blog, We will look into the difference of using Playwright MCP over other LLMs and Agents like BoltPerplexity.ai, Warp.dev, V0.app, Manus.im, and Qwen.ai


๐Ÿ” What is Playwright MCP (Model Context Protocol)

Playwright MCP is an open-source server developed by Microsoft that enables Large Language Models (LLMs) such as GitHub Copilot, Claude, or GPT to interact with web pages using Playwright's browser automation tools. By leveraging the Model Context Protocol (MCP), it allows AI models to perform tasks like reading web content, interacting with elements, taking screenshots, and executing JavaScript within a browser environment. 

It allows AI tools to:

  • Access your local Playwright test project (code, tests, config files)

  • Run commands or scripts on your local environment (e.g., execute npx playwright test)

  • Inspect page structure, selectors, or test results dynamically
    → Essentially, your AI model can “see” and “interact” with your actual test environment — not just generate code in isolation.



⚖️ Comparison: Playwright MCP vs Other Tools

ToolCore NatureIntegration LevelContext AwarenessAutomation Test Generation QualityUnique Advantage
Playwright MCPAI-connected runtime (direct access to local Playwright)Deep (native with your project)๐Ÿ”ฅ High (accesses live files & browser context)    Very HighContextual test creation, can validate selectors, debug live

Playwright Codegen

Built-in recorder (CLI/UI)
 High (native)Low (records user actions only)    MediumGreat for quick script generation; not AI-based
Bolt.newAI test generation from plain text   Medium  MediumMedium-High
Fast UI → test translation for Playwright or Cypress


Perplexity.ai AI research +   coding   assistant    LowMediumMediumGood for explaining or troubleshooting Playwright concepts

Warp.devAI terminal with command suggestions    LowLowLowHelpful for CLI automation setup, not for writing test logic

V0.appAI UI generation + code  MediumMediumMediumGreat for scaffolding test dashboards or UIs, not test logic

Manus.imAI code assistant   MediumMediumMediumUseful for maintaining test frameworks; lacks runtime access

Qwen.aiAI model (strong coding focus)    LowMediumMediumEfficient at generating scripts, but lacks local integration


๐Ÿงฉ Key Takeaway:

๐Ÿ‘‰ Playwright MCP is the only tool that actually executes, inspects, and validates tests within your local Playwright environment. All others are text/code generators or assistants — not real-time test agents.

๐Ÿ‘‰ Playwright MCP is the only one that connects an AI directly to your running Playwright test environment, not just to text/code prompts.



⚙️ 1. Core Difference — What They Are

ToolWhat It Actually IsWhat It Does
Playwright MCPAI-connected runtime (via Model Context Protocol)Lets AI interact directly with your local Playwright environment — access files, run tests, inspect DOMs, debug live.

Playwright CodegenBuilt-in recorder tool from PlaywrightRecords browser actions and auto-generates Playwright scripts.

Bolt.newAI test generatorConverts plain English test cases → Playwright/Cypress code using AI.

Perplexity.aiAI research + coding assistantAnswers questions, explains concepts, and sometimes writes code — but not integrated into your test environment.

Warp.devAI-powered terminalHelps run commands, set up Playwright, or fix CLI errors — but doesn’t generate or run tests.

V0.appAI UI-to-code generator (from Vercel)Builds UI components or test dashboards — not specific to test automation.

Manus.imAI pair-programmerHelps write or refactor test code — works like GitHub Copilot.

Qwen.aiGeneral-purpose AI code modelGood at generating Playwright scripts, but lacks deep context about your local project.



๐Ÿง  Context Awareness

ToolContext UsedContext Depth
Playwright MCPReal project files, browser context, selectors, and runtime  ๐Ÿ”ฅ High (live runtime + codebase)

Playwright Codegen

   User interactions during recording
Medium

Bolt.new
Prompt text onlyLow

Perplexity.ai
Web + general knowledgeLow

Warp.dev
CLI contextLow

V0.app
UI design contextLow

Manus.im
Local code context (IDE plugin)Medium

Qwen.ai
Prompt text + sample codeMedium

๐Ÿงฉ Summary:
Only Playwright MCP has true runtime context — it can read your test files, inspect the app under test, and adjust code based on real DOM changes.



๐Ÿงช Test Generation & Execution Capability

ToolCan Generate Tests?Can Execute or Validate Tests?
Playwright MCP✅ Yes ✅ Yes — runs tests locally & returns results

Playwright Codegen          
✅ Yes (by recording).            ✅ Yes (via Playwright CLI)

Bolt.new
✅ Yes❌ No

Perplexity.ai
✅ Limited❌ No

Warp.dev
❌ No✅ Yes (if you type commands manually)

V0.app
❌ Not its goal❌ No

Manus.im
✅ Yes❌ No

Qwen.ai
✅ Yes❌ No

๐Ÿงฉ Summary:
Only Playwright MCP and Playwright Codegen can run tests directly — but MCP adds AI intelligence and project awareness to that process.



๐Ÿ’ฌ Type of AI Involvement

Tool AI RoleIntelligence Type
Playwright MCP         Active       
       collaborator
              Contextual + operational (reads files, executes  commands, reasons with results)

Playwright Codegen    
       Passive recorder              Rule-based, no AI

Bolt.new
       Prompt-base  generator              Generative AI (LLM)

Perplexity.ai
   
       Knowledge assistant
              Conversational AI

Warp.dev
       CLI enhancer              Command recommendation AI

V0.app
       UI generator              Design-to-code AI

Manus.im
       Code assistant              Pair-programmer AI

Qwen.ai
      Coding LLM              Code completion / generation AI

๐Ÿงฉ Summary:
Playwright MCP blends LLM intelligence + local execution, which none of the others do.



๐Ÿง‘‍๐Ÿ”ง Benefits for Different Users

RoleBenefit of Playwright MCP
Manual Testers
        Can describe scenarios in plain English, auto-generate and execute real tests, and learn Playwright syntax interactively.
Automation Engineers
       AI can debug, refactor, and maintain tests with full context of your project and selectors.
Developers
       Quick test scaffolding, auto-fix flaky tests, live feedback without switching tools.

In contrast, other tools only cover a slice of that workflow — e.g., generating code (Bolt.new), recording steps (Codegen), or answering questions (Perplexity.ai).



๐Ÿš€ Why Playwright MCP Stands Out

FeaturePlaywright MCP Advantage
Real project interaction                           AI can open your files, run tests, and see results.

Selector validation
                           
                           Can test locators against the live DOM and fix them automatically.

AI-assisted debugging
                           
                           Explains failures and suggests fixes right from the
                           console.

One-step test creation
                           No switching between tools or copy-paste.

Hybrid for all skill levels
                           Low-code for testers, full-code for engineers.



๐Ÿ’ก Example: Live Workflow Using Playwright MCP

Prompt (in your AI tool):

“Generate a Playwright test that logs into the demo site, verifies the dashboard title, and captures a screenshot if login fails.”

What MCP does:

  1. Reads your local project structure (tests/login.spec.ts, playwright.config.ts)

  2. Opens the browser context via Playwright

  3. Validates selectors live (page.locator('#login-btn'))

  4. Generates the complete runnable test file

  5. Executes the test and returns the report/screenshot in your chat

No other AI tool (Perplexity, Warp, etc.) can currently run and validate tests inside your actual environment.


๐Ÿ In Simple Terms

Playwright MCP = “AI that actually lives inside your Playwright project.”
While others (Bolt.new, Qwen.ai, Manus.im, etc.) are AI that just talk about your Playwright project.

๐Ÿงฉ “Playwright MCP = Context + Execution + AI Reasoning”  
                                   Vs 
⚙️ “Others = Code Generation or Explanation Only.” 



๐Ÿ”ฎ Conclusion

While Playwright MCP introduces an exciting concept — connecting AI directly with your local Playwright environment — it’s still in an early, experimental stage. Its setup complexity, limited stability, and dependency on specific AI integrations mean it’s not yet the best choice for most teams.

If your goal is fast, reliable test generation or assistance, tools like Bolt.new, Manus.im, or Qwen.ai are currently more practical and mature.

  • Use Bolt.new for quick English-to-test conversions.

  • Use Perplexity.ai for research, troubleshooting, and clarifying Playwright concepts.

  • Use Manus.im or Qwen.ai for code completion and framework scaffolding.

  • Use Playwright Codegen for dependable, record-and-playback script creation.

Each of these tools excels in its specific domain — whether that’s learning, generating, or maintaining tests — and can fit naturally into existing QA workflows without the friction MCP still carries.

So for now, Playwright MCP is an interesting glimpse into the future, but the smarter choice today is to pick the right AI tool for the right purpose — rather than relying on MCP to do it all.


Happy automation testing guys ๐Ÿš€๐Ÿš€๐Ÿš€!


Salax: Automating Secure Messaging Web Client with Playwright

In this article we will discuss on how to automate SalaX   secure messaging web client with Playwright.  Today’s market offers many secure ...