# Testing websites and GUIs

**URL:** https://discourse.julialang.org/t/testing-websites-and-guis/138491
**Category:** General Usage
**Created:** [July 27, 2026, 5:33am UTC](https://discourse.julialang.org/t/testing-websites-and-guis/138491 "2026-07-27T05:33:04Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![cstjean](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cstjean/32/1444_2.png) [@cstjean](https://discourse.julialang.org/u/cstjean)
#### Post date: [July 27, 2026, 5:33am UTC](https://discourse.julialang.org/t/testing-websites-and-guis/138491/1 "2026-07-27T05:33:04Z")

</div>

I’m at a point where I would feel comfortable vibe coding some website (though the core logic is carefully human-written), _but_ I still don’t know how to write tests for a website. If the LLM implements feature B while breaking feature A, that’s not much progress forward. How do you all deal with this?

The LLM itself seems to recommend (normal unit tests and) using [playwright](https://playwright.dev/). Playwright looks popular, but it has apparently never been mentioned on the julia discourse, does anyone have experience with it?

---

<div class="post-metadata">

### Author: ![frankier](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/frankier/32/35101_2.png) [@frankier](https://discourse.julialang.org/u/frankier)
#### Post date: [July 27, 2026, 7:47am UTC](https://discourse.julialang.org/t/testing-websites-and-guis/138491/2 "2026-07-27T07:47:27Z")

</div>

Current options are:

- Raw CDP to drive Chrome which LLMs will happily write a mini framework for inline
- This PR: [first prototype for electron based testsuite - Pull Request #14 - JuliaWeb/ElectronCall.jl - GitHub](https://github.com/JuliaWeb/ElectronCall.jl/pull/14)

It’s so raw as to be slightly embarrassing to bring up but, as another option I did start a (vibe coded with agent-skills) Playwright port here [GitHub - frankier/playwright-julia · GitHub](https://github.com/frankier/playwright-julia) . It’s currently waiting for Oxygen.jl to catch up with HTTP.jl 2.x so I can start testing it with other web stuff. Not sure if it helps, but welcome to try and collaborate rather than ending up with 3 half-baked Playwright packages.

---

<div class="post-metadata">

### Author: ![sinisterMage](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sinistermage/32/222897_2.png) [@sinisterMage](https://discourse.julialang.org/u/sinisterMage)
#### Post date: [July 27, 2026, 8:14am UTC](https://discourse.julialang.org/t/testing-websites-and-guis/138491/3 "2026-07-27T08:14:25Z")

</div>

i looked at your repo ([GitHub - frankier/playwright-julia · GitHub](https://github.com/frankier/playwright-julia)), it will actually be very useful for a project i am working on! ill try it with my project and let you know about bugs i encounter 🙂

---

<div class="post-metadata">

### Author: ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)
#### Post date: [July 27, 2026, 8:18am UTC](https://discourse.julialang.org/t/testing-websites-and-guis/138491/4 "2026-07-27T08:18:30Z")

</div>

> [@cstjean](#):
>
> Playwright looks popular, but it has apparently never been mentioned on the Julia discourse,

I have used it for certain use cases. At its core it is an MCP server, which exposes tools and allows the agent to control a browser session. I’ve mainly used it as a way to capture screenshots of document elements in order to create the automated documentation here [KaimonSlate.jl](https://kahliburke.github.io/KaimonSlate.jl/dev/).

I’ve been working for the past several months on tools which are more Julia centric, Kaimon and KaimonSlate. They also expose tools via MCP. They don’t necessarily help you create a ‘website’, but I also don’t know what you mean by that. They might offer something for you.

I have worked on a lot of AI tooling specifically for Julia and might have some advice for what to use, but I’d need to understand your goals better. Happy to discuss here or through DM chat.

I use the tools I create when working on the tools themselves, as well.

---

<div class="post-metadata">

### Author: ![frankier](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/frankier/32/35101_2.png) [@frankier](https://discourse.julialang.org/u/frankier)
#### Post date: [August 14, 2026, 10:35am UTC](https://discourse.julialang.org/t/testing-websites-and-guis/138491/5 "2026-08-14T10:35:33Z")

</div>

I’ve now got [GitHub - frankier/Playwright.jl: Drive real browsers from Julia through the official Playwright automation engine · GitHub](https://github.com/frankier/Playwright.jl) to a fairly good point now. I’d certainly appreciate any help testing and finding design issues, missing important features and so on. I’m currently using it in a couple of repos. The main thing I’m currently thinking is to generate comparisons with playwright python and also restructure the documentation in the style of playwright python. I’ll make an announcement post in a few weeks with an eye to registering it — probably straight to 1.0 – within maybe a couple of months.
