I'm using iMacros to interact with a website that contains a Shadow Dom to display the site header. I was unable to get iMacros to interact with the shadow dom in chrome or firefox using standard commands so I turned to writing a javascript function to do it. However the URL GOTO=javascript command will not run my javascript function regardless of how I format the javascript. I'll paste the javascript and vb code I am using below, any help would be much appreciated
iMacros version: 12.6.505.4525
iMacros license: iMacros Enterprise Player
Chrome version: 91.0.4472.77
Firefox version: 89
Windows version: Windows Server 2012 R2
Code: Select all
Dim scriptString As String = "var root = document.querySelector('b2b-shared-header').shadowRoot;
var navItems = root.querySelector('.sdx-container').querySelector('.nav__mainnav .nav__secondary').querySelectorAll('.nav-item');
var navItem = navItems[navItems.length - 1];
navItem.querySelector('.nav-link.text-uppercase > i').click();
setTimeout(function(){
var languageMenuItems = navItem.querySelector('.b2b-flyout').querySelectorAll('li');
for(var i = 0; i < languageMenuItems.length; i++){
if(languageMenuItems[i].textContent == 'English'){
languageMenuItems[i].click();
break;
}
}
}, 2000);"
Dim scriptStringFormatted = scriptString.Replace(Constants.vbCrLf, "")
scriptStringFormatted = scriptStringFormatted.Replace(" ", "<SP>")
Dim languageJSMacro As New StringBuilder()
languageJSMacro.Append("CODE")
languageJSMacro.AppendLine("URL GOTO=javascript:" & scriptStringFormatted)