Rayrun
← Back to Discord Forum

Playwright internals: how does it work?

Hey all, I was wondering if there is a resource to learn how playwright works internally? Docs are great to understand how to use playwright, but leaves some questions I need to answer.

Examples:

  1. How are playwright instructions like await mouse.click(x, y); sent to the browser?
  2. What are the differences between using connect and connectOverCDP. When should I use one over the other?
  3. When using languages like C#, it seems like a nodejs version of playwright is launched as a child process? how does the c# process communicates with nodejs? and how does instructions eventually land in the browser?
  4. When using solutions like lambdatest (example: https://www.lambdatest.com/support/docs/playwright-testing/#run-your-first-test) what am I connecting to in this case? the browser directly? or a playwright server?

thank you. 🙏

This thread is trying to answer question "How does Playwright work internally, specifically in terms of instruction transmission, connection methods, and interaction with other languages and tools?"

2 replies

If you are in VScode por example ctrl+click in the fuction and you will go behind the scenes

Unfortunately that won't provide enough information to answer my questions. I tried cloning the repository and debugging playwright code but I need some high level guidance on how to approach the codebase.

Related Discord Threads

TwitterGitHubLinkedIn
AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.