diff --git a/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html b/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html
index 0627ee7aff90..fca0681ac5b7 100644
--- a/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html
+++ b/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html
@@ -108,6 +108,23 @@
+
+
+
+
+
+
+
+
Do better web tester page
Hi there!
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.