diff --git a/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html b/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html index 0627ee7aff90..f340a456be6d 100644 --- a/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html +++ b/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html @@ -27,6 +27,15 @@ }, 1500); + + + + diff --git a/lighthouse-core/gather/driver.js b/lighthouse-core/gather/driver.js index bb80ba984dc5..4e45acedb23f 100644 --- a/lighthouse-core/gather/driver.js +++ b/lighthouse-core/gather/driver.js @@ -1137,7 +1137,8 @@ class Driver { async cacheNatives() { await this.evaluateScriptOnNewDocument(`window.__nativePromise = Promise; window.__nativeError = Error; - window.__nativeURL = URL;`); + window.__nativeURL = URL; + window.__ElementMatches = Element.prototype.matches;`); } /** diff --git a/lighthouse-core/lib/page-functions.js b/lighthouse-core/lib/page-functions.js index b674e0d60db7..01fc1057ae8b 100644 --- a/lighthouse-core/lib/page-functions.js +++ b/lighthouse-core/lib/page-functions.js @@ -90,7 +90,7 @@ function getElementsInDocument(selector) { /** @param {NodeListOf} nodes */ const _findAllElements = nodes => { for (let i = 0, el; el = nodes[i]; ++i) { - if (!selector || el.matches(selector)) { + if (!selector || window.__ElementMatches.call(el, selector)) { results.push(el); } // If the element has a shadow root, dig deeper.