From b621e5d1d2a4fdae3da6d69fe9a64fdb814b73fe Mon Sep 17 00:00:00 2001 From: lukect <55721847+lukect@users.noreply.github.com> Date: Thu, 12 Jan 2023 23:36:21 +0000 Subject: [PATCH] Fix detection due to cdc_props removal. #986 --- undetected_chromedriver/__init__.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/undetected_chromedriver/__init__.py b/undetected_chromedriver/__init__.py index 3487ef05..10bafd4c 100644 --- a/undetected_chromedriver/__init__.py +++ b/undetected_chromedriver/__init__.py @@ -17,7 +17,7 @@ from __future__ import annotations -__version__ = "3.2.1" +__version__ = "3.2.2" import json import logging @@ -608,29 +608,23 @@ def _get_cdc_props(self): while(objectToInspect !== null) { result = result.concat(Object.getOwnPropertyNames(objectToInspect)); objectToInspect = Object.getPrototypeOf(objectToInspect); } - return result.filter(i => i.match(/.+_.+_(Array|Promise|Symbol)/ig)) + return result.filter(i => i.match(/^[a-z]{3}_[a-zA-Z0-9]{22}_.*/i)) """ ) - def _hook_remove_cdc_props(self): + def _hook_remove_cdc_props(self, cdc_props): + if len(cdc_props) < 1: + return + cdc_props_js_array = '[' + ', '.join('"' + p + '"' for p in cdc_props) + ']' self.execute_cdp_cmd( "Page.addScriptToEvaluateOnNewDocument", { - "source": """ - let objectToInspect = window, - result = []; - while(objectToInspect !== null) - { result = result.concat(Object.getOwnPropertyNames(objectToInspect)); - objectToInspect = Object.getPrototypeOf(objectToInspect); } - result.forEach(p => p.match(/.+_.+_(Array|Promise|Symbol)/ig) - &&delete window[p]&&console.log('removed',p)) - """ + "source": cdc_props_js_array + ".forEach(p => delete window[p] && console.log('removed', p));" }, ) def get(self, url): - if self._get_cdc_props(): - self._hook_remove_cdc_props() + self._hook_remove_cdc_props(self._get_cdc_props()) return super().get(url) def add_cdp_listener(self, event_name, callback):