Environment: Angular (v5 Application with Polymer Web Components. Protractor for running e2e tests.
Angular CLI: 1.6.4
Node: 6.10.0
Angular: 5.2.0
@angular/cli: 1.6.4
typescript: 2.5.3
Below given is my polymer web component shadow root expanded in chrome. You could see input type = "text"
inside this custom element.
I am unable to access input element inside custom polymer component using protractor by.deepCss
.
var polymerFirstName = element(by.className('polyFName'));
var inputs = polymerFirstName.element(by.deepCss('input')); // returns nothing.
I need to access the inner input element so that I can perform UI Automation tasks like.
element(by.deepCss('input')).clear();
element(by.deepCss('input')).sendKeys('Ritchie');
If I try to invoke .clear
or .sendKeys
directly on Polymer components it will fail with "Failed: invalid element state: Element must be user-editable in order to clear it"
. Basically I cannot call .clear
or .sendKeys
on to custom input element created using Polymer.
How can I access inner input element inside shadow DOM from a protractor test?
Thanks
Basanth
polymerFirstName
evaluate to? – zmiideepCss
instead ofcss
? Is it really shadow DOM? – Kacper