I've noticed this too. The latest cursor version has a @browser command which will launch a browser with playwright, and call tools to inspect the html and inject JavaScript to debug in real-time.
When it has access to the right tools, it does a decent job, especially for fixing CSS issues.
But when it can't see the artifacts it's debugging, it starts guessing, confident that it knows the root cause.
A recent example: I was building up a html element out of the DOM and exporting to PNG using html2canvas. The element was being rendered correctly in the DOM, but the exported image was incorrect, and it spent 2 hours spinning it's wheels and repeating the same fixes over and over.
When it has access to the right tools, it does a decent job, especially for fixing CSS issues.
But when it can't see the artifacts it's debugging, it starts guessing, confident that it knows the root cause.
A recent example: I was building up a html element out of the DOM and exporting to PNG using html2canvas. The element was being rendered correctly in the DOM, but the exported image was incorrect, and it spent 2 hours spinning it's wheels and repeating the same fixes over and over.