@@ -517,6 +517,32 @@ export function tests() {
517517 } )
518518 } )
519519
520+ describe ( '#shadow DOM' , ( ) => {
521+ it ( 'should click button inside shadow DOM' , async ( ) => {
522+ await I . amOnPage ( '/form/shadow_dom' )
523+ await I . click ( { shadow : [ 'my-button' , 'button' ] } )
524+ await I . see ( 'my-button > button' , '#clicked-element' )
525+ } )
526+
527+ it ( 'should click button in nested shadow DOM' , async ( ) => {
528+ await I . amOnPage ( '/form/shadow_dom' )
529+ await I . click ( { shadow : [ 'my-app' , 'my-form' , 'button' ] } )
530+ await I . see ( 'my-app > my-form > button' , '#clicked-element' )
531+ } )
532+
533+ it ( 'should fill field inside nested shadow DOM' , async ( ) => {
534+ await I . amOnPage ( '/form/shadow_dom' )
535+ await I . fillField ( { shadow : [ 'my-app' , 'my-form' , 'input' ] } , 'Shadow Test' )
536+ await I . see ( 'Shadow Test' , '#input-value' )
537+ } )
538+
539+ it ( 'should work with shadow locator as JSON string' , async ( ) => {
540+ await I . amOnPage ( '/form/shadow_dom' )
541+ await I . click ( '{"shadow": ["my-button", "button"]}' )
542+ await I . see ( 'my-button > button' , '#clicked-element' )
543+ } )
544+ } )
545+
520546 describe ( '#executeScript' , ( ) => {
521547 it ( 'should execute synchronous script' , async ( ) => {
522548 await I . amOnPage ( '/' )
0 commit comments