...indicating that the browser has fully finished rendering the page?
(My emphasis.) That's the load
event on window
. Yes, it waits for all images, but you have to wait for all images to "fully finish" rendering the page.
If you want something earlier, when the page is not "fully finished rendering," there isn't anything well-supported cross-browser. The usual recommendation is to put your script at the very bottom of the page. It can then access any DOM element defined above it (e.g., all of them). But I can't guarantee the page is fully rendered at that point (painted on-screen), just that the DOM elements exist and can be interacted with. (This is why libraries use a variety of techniques depending on what will work on each browser.)
References: