As per the rules of W3C custom elements are registered by script using document.registerElement(). Now, it may be possible that they are declared or created before their definition is registered by the browser. For example, you can declare on the page but end up invoking document.registerElement('hangout-module') much later.
This although this is an HTML element that has a valid custom element name but haven't been registered. Due to this, the element remains an unresolved element until it is upgraded to its definition.
And it may be possible that Webdriver is not yet designed to read unresolved elements. So you might want to look in to it, whether your custom element is registered before it is declared.
Can you try and check whether WebdriverJS reads the element at all or not. Would you try isDisplayed()
, or try to find the element by xpath or id or CSS and assert whether it is present(read by Webdriver) or not?
(def d (execute-script "var n = document.body.getElementsByTagName(\"*\").length; return n;"))
getElementsByTagName
before hangout-module exists. Adding a sleep beforehand might help determine if that's the problem.