chrome高版本浏览器不兼容driver.execute_script(“return window.performance.getEntries()“)的解决方法

一、背景

之前使用driver.execute_script("return window.performance.getEntries()")的方法获取浏览器所有请求,很好用,可是后来一旦更新谷歌浏览器后,运行相关代码就会报错(如下)

entries = self.driver.execute_script("return window.performance.getEntries()") File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 528, in execute_script return self.execute(command, {"script": script, "args": converted_args})["value"] File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute self.error_handler.check_response(response) File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 232, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Unable to resolve weakLocalObjectReference=1 (Session info: chrome=133.0.6943.54)

但是120版本或者之前的chrome浏览器,运行相同的代码就可以成功,后来很长一段时间,都是降级chrome浏览器版本来维持代码的运行。

二、解决办法

将下面的代码替换成新的即可完美解决

历史

entries = self.driver.execute_script("return window.performance.getEntries()")

更新后

entries = self.driver.execute_script("return window.performance.getEntriesByType('resource')") 

你可能感兴趣的:(疑难杂症集,chrome,java,selenium,performance,execute_script,getEntries)