I found a fix.
Lightning and Aura components use Secure Wrappers, so we are not able to use features like getElementsByClassName or getElementById. See more: https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.security_locker_global_access
But instead should be used query selectors on shadow DOM:
You should go for DevOps process to keep two or more sandboxes in sync.
Use sfdx to retrieve complete metadata.
Have a version control tool like BitBucket/Source tree to compare and merge the differences.
With Integration tool like Jenkins, run build which will take care of test class coverage also.
Deploy the changes via ANT.
There are many other tools ...
You could use a vendor product like Gearset which can run Continuous Integration between a source sandbox and a target sandbox (in addition to also working with source control if you desire)
Details on the Gearset CI feature are here. You can choose which metadata types you want to keep in sync as the source sandbox changes.
N.B. I am not an employee of ...
Treat change set as an unmanaged package/manage package. You can extract all the metadata as a zip using the package name. Workbench already supports this and also the CLI
You can use the Salesforce(sfdx) CLI to do this using below (It uses metadata api under the hood)
sfdx force:mdapi:retrieve -s -r ./mdapipkg -u <username> -p <change set name>...
NavigationMenu is available as of version 47 to migrate custom navigation menus created using Community Builder.
Went to search on how to deploy navigation menus used in communities. Hope anyone else stumbling upon this question finds this useful.