<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Node Database and Query Engine]]></title><description><![CDATA[<p dir="auto">Whenever I have had the misfortune to maintain an automation framework that's testing a web site I generally find the following:</p>
<ul>
<li>A code module of some kind for testing each page.</li>
<li>At the top of the module, a whole mess of links to the significant nodes under test.</li>
</ul>
<p dir="auto">These links are often extensive and require manual updates whenever a node is moved on the page.</p>
<p dir="auto">It would save millions of hours of work each year if the browser constructed a simple database of each node as it constructs the page and provided a simple query engine, perhaps java script, to allow frameworks to query a node by a distinct tag / label and get a web element in return.</p>
<p dir="auto">That way all test and development teams would have to do is ensure that they assign a distinct label to any node they know they'll be testing.</p>
<p dir="auto">Then all the framework has to do is call the query engine to get the required web element, regardless of whether it has been moved or not.</p>
<p dir="auto">As the browser is aware of each node as it builds the page, this shouldn't cause a significant overhead while loading it. However, you could also provide a test toggle to enable / disable this feature, with it being disabled by default.</p>
<p dir="auto">This feature would save millions of lines of code world wide and make Opera a very popular browser for testers and developers.</p>
]]></description><link>https://forums.opera.com/topic/60866/node-database-and-query-engine</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 02:27:59 GMT</lastBuildDate><atom:link href="https://forums.opera.com/topic/60866.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Mar 2023 08:39:08 GMT</pubDate><ttl>60</ttl></channel></rss>