You cannot take a screenshot of a cross origin iFrame without its cooperation (except using screen sharing, like you mentioned).
Cooperation means, for example, posting a message to the iFrame, asking it to take a screenshot of its content (using the same means you have, html2canvas or similar) and post the screenshot back to you (say, as a data URL string).
This is intentional, as if there were a (legal) way, it would be a privacy and a security issue.
(Illegal ways mean basically exploiting a security hole that may or may not be fixed/patched at anytime and stop working)