Your error message says that there does not exist any element proxy. Proxy means the according C representation of the node, which is missing.
With c.__class__() you try to call the constructor of the _Element class. The documentation of lxml says:
It is important to know that every proxy in lxml has a factory function that properly sets up C level members. Proxy objects must never be instantiated outside of that factory. For example, to instantiate an _Element object or its subclasses, you must always call its factory function::
cdef xmlNode* c_node cdef _Document doc cdef _Element element ... element = _elementFactory(doc, c_node)
Without using the factory pattern and passing the c_node, the constructor will fail because of the assertions:
lxml/src/lxml/apihelpers.pxi:
cdef inline int _assertValidNode(_Element element) except -1: assert element._c_node is not NULL, u"invalid Element proxy at %s" % id(element)