
WebElements is a collection of python objects that enable developers to generate and interact with web apps server side. It encourages object oriented website development, and code reuse by seperating each DOM element into its own object, and then allowing inheritance and child elements to come together to form new elements not defined in the standard DOM.
from WebElements import Layout, Document, Buttons
page = Document.Document()
layout = page.addChildElement(Layout.Center()).addChildElement(Layout.Horizontal())
layout += Buttons.Button(text="Use WebElements.", **{'class':'MainAction'})
layout += Buttons.Button(text="Enjoy writing less code.", **{'class':'DeleteAction'})
layout += Buttons.Button(text="100% Python.")
print page.toHTML(formatted=True)
<!DOCTYPE html>
<html>
<head>
<title>
</title>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</meta>
</head>
<body>
<div class="WCenter">
<div class="WOuter">
<div class="WInner">
<div class="WClear">
<input class="WBlock WLeft MainAction" type="button" value="Use WebElements." />
<input class="WBlock WLeft DeleteAction" type="button" value="Enjoy writing less code." />
<input class="WBlock WLeft" type="button" value="100% Python." />
</div>
</div>
</div>
</div>
</body>
</html>
WebElements has at its base a full server-side implementation of all HTML5 nodes, and it comes with elements specifically built with HTML5 in mind. It also forces syntactically correct HTML5 output - so you can rest assured your web app is future proof.


All the most advanced features in the world, and ease of development WebElements provides would be useless if it decreased your websites performance and drove customers elsewhere. That is why we constantly work hard to ensure WebElements performs well now and will continue to in the future. Before every release we put WebElements through an intensive set of benchmarks, and if it doesn't perform at least as well as its last release - we go back to the drawing board. This has resulted in spectacular performance that beats even simple templating languages.
One of the hardest things about traditional web development is the need to constantly mentally context-switch - as you move from editing server-side code, HTML, JavaScript, and CSS. WebElements is different. Write 100% Python code that then generates the HTML, Javascript and CSS that runs your site.
