The JS Path you've got there is extremely verbose (and pedantic) – those can frequently be abbreviated quite a lot.
I don't think I'd say QuerySelector is inherently superior to XPath – it's just different, and I understand it a little better.
I confess I'm not well acquainted with the syntactic niceties of JS Paths and usually just tinker to see if I can shorten them. (I'd have to see your page and tinker with the code to determine if I could successfully shorten the query.)
As for testing for the existence of a DOM element see @JMichaelTX's macro here:
Right at the beginning of the first JavaScript action is such a test.