This one is still lacking from the API but you can do the following:
var sceneElm = document.querySelector('#'+hypeDocument.documentId()+' > .HYPE_scene[style*="block"]');
sceneElm.querySelector('.ptitle').innerHTML = "I am p tag content";
You can also use the extension project and define a new function called hypeDocument.currentSceneElement und hypeDocument
Then you can do the following
hypeDocument.currentSceneElement().querySelector('.ptitle').innerHTML = "I am p tag content";
or store the scene element
var sceneElm = hypeDocument.currentSceneElement();
sceneELm.querySelector('.ptitle').innerHTML = "I am p tag content";
Then there is the special case of functions called on scene load. At least if defined in the GUI you get the scene element under the Hype function variable element. Probably still a good practice to fetch it yourself or/and assign it to a var like sceneElm just to make sure you know what your intentions where when reading the code later. Also the HypeSceneLoad event, when used in pure code has a known bug and element is not set. Should be fixed soon (hopefully, according to Tumult).
There was also the rumor or at least weak intention to extend the official API with hypeDocument.currentSceneElement or hypeDocument.getCurrentSceneElement down the line. A important command as it allows to scope the search (to the visible) as you mentioned above.