Hi, I'm trying to load an HTML page inside a webbrowser in my WinForms app and would like to set text values of several elements of the page in order to localize it according to language.

The poblem is, I cannot get any elements from the Document...
This is how I load my document, which is stored locally.
Code:
this.webBrowser.Navigate(new Uri(Application.StartupPath + @"\Help\" + TargetLanguage.GetString("Help_FileName")));
And this is the HTML loaded (fragment)
HTML Code:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=11" >
    
    <title>Help page</title>
    <style>
    div.main {
        margin-left: auto;
        margin-right: auto;
    }
    p.regular {
        margin-left: 3%;
        word-wrap: break-word;
        width: 900px;
        max-width: 95%;
    }
    </style>
</head>
<body bgcolor="#B6F2C5">
    <div>
        <div>
            <p name="TestID" id="TestID" class="regular">Hello world<p>
            ...
        </div>
    </div>
</body>
I've tried any combination of GetElementByID() and GetElementsByTagName() with "TestID", with "p" and "div" and I never get an element.
I've looked it up on multiple forums and none of the suggested solutions work for me.

ElementByID is always null
ElementsByTag is always empty collection
WebBrowser.Document.Body is always null (not sure if this means anything anyway)

Neither getting elements by tag (p, div, etc) nor getting elements by ID/Name works...

How can I get this done?

And once I eventually get the element I'm looking for, will *.InnerText = "something"; work or how do I set its text then?
Thank you for any help!