Purpose
Search the official Maryland Secretary of State trademark registry for a supplied query and capture the submitted query plus the live result area. Do not solve, submit, or interact with CAPTCHA challenges.
When to Use
Use for any Maryland trademark-registry lookup where the caller provides a name, phrase, or other search text and needs the visible post-submission results.
Workflow
- Navigate directly to
https://sos.maryland.gov/Pages/Trademarks/TMSearch.aspx. - In the same browser operation, set
input#ctl00_PlaceHolderMain_keywordto{query}, activateinput#ctl00_PlaceHolderMain_searchSubmit, wait for the page's post-submit update, and run this evaluator on the resulting page:
(() => {
const visible = (el) => {
if (!el) return false;
const s = getComputedStyle(el),
r = el.getBoundingClientRect();
return (
s.display !== "none" &&
s.visibility !== "hidden" &&
r.width > 0 &&
r.height > 0
);
};
const input = document.querySelector("#ctl00_PlaceHolderMain_keyword");
const candidates = [
...document.querySelectorAll(
'[aria-live], [role="region"], table, #ctl00_PlaceHolderMain',
),
].filter(visible);
const live =
candidates.find((el) => el.matches("[aria-live]")) ||
candidates.find((el) => el.matches("table")) ||
candidates.find((el) => el.id === "ctl00_PlaceHolderMain") ||
document.querySelector("main");
return {
submittedQuery: input ? input.value : null,
resultAreaText: live ? live.innerText.trim() : "",
resultAreaHtml: live ? live.outerHTML : "",
};
})();The evaluator reads only the loaded registry page; if a CAPTCHA appears, stop without solving it and report the visible challenge state instead of attempting further interaction.
Site-Specific Gotchas
- This is an ASP.NET page whose search controls use the opaque IDs
ctl00_PlaceHolderMain_keywordandctl00_PlaceHolderMain_searchSubmit. - The observed search URL has no query parameter for the keyword, so direct URL construction alone does not submit a search; populate the control and activate the submit input.
- The result markup may be a table or an ASP.NET content region rather than a consistently named results container; the extractor checks live regions, tables, and
#ctl00_PlaceHolderMainin that order. - Never solve or interact with CAPTCHA; capture only the query and whatever result or challenge area is visibly returned.
Expected Output
Return an object with submittedQuery, resultAreaText, and resultAreaHtml. The query is the value actually present in the keyword field after submission, and the result-area fields contain the visible post-submit registry content or CAPTCHA state.