网上看到的别人的代码,运行发现出错。

无头模式下会报invalid argument: log type 'performance' not found错误,但去掉--headless即有头模式下不出错。

请问如何解决?我需要无头下,可能查看performance日志

python代码如下:

from selenium import webdriver

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

import json

def get_redurection_chain(url):

"""

Given a url, return the urls in redirection chain and the length of the redirection chain.

The redirection chain will be checked using selenium driven chrome browser and retrieved from

browser log.

:param url: the url that will be checked.

:return: (

length of redirection chain,

a list of the urls in the redirection ordered based on the sequence they are visited,

)

"""

# landing_urls record origins->url->other intermedia urls->final_url

landing_urls = list()

landing_urls.append(url)

curr_url = url

capabilities = DesiredCapabilities.CHROME

capabilities['loggingPrefs'] = {

'performance': 'ALL',

}

options = webdriver.ChromeOptions()

options.add_argument('--ignore-certificate-errors')

options.add_argument('headless')

driver = webdriver.Chrome(

desired_capabilities=capabilities,

chrome_options=options,

)

driver.get(url)

for log in driver.get_log('performance'):

log_entry = json.loads(log['message'])

if 'redirectResponse' not in log_entry['message']['params']:

continue

if log_entry['message']['params']['redirectResponse']['url'] == curr_url:

redirect_url = log_entry['message']['params']['request']['url']

landing_urls.append(redirect_url)

curr_url = redirect_url

driver.close()

return len(landing_urls), landing_urls

if __name__ == '__main__':

get_redurection_chain('http://www.baidu.com/')

python 无头模式_selenium 无头模式获取日志performance出错相关推荐

  1. 【Playwright】关于无痕模式与无头模式

    Playwright的无头模式和无痕模式 无头模式 无头模式指的是自动测试框架在执行过程中不打开浏览器窗口的功能.在Playwright中,关闭无头模式会在测试代码执行过程中显示浏览器窗口,执行的过程 ...

  2. python命令行进入帮助模式_Python 命令行之旅:深入 click 之选项篇

    作者:HelloGitHub- Prodesire 一.前言 在上一篇文章中,我们介绍了 click 中的"参数",本文将继续深入了解 click,着重讲解它的"选项&q ...

  3. python版:装饰器模式

    装饰器模式介绍 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 装饰器模式实现 设计模式只是一种思想与语言无关,设 ...

  4. 简单工厂模式(Java、Python)、工厂方法模式(Java、Python)

    目录 一.试画出简单工厂模式的模式结构图,并对模式进行分析 1.1 简单工厂模式结构图: 1.2 简单工厂模式的实现(Java) 1.3 简单工厂模式的优缺点 1.4 简单工厂模式实现(Python) ...

  5. python创造者_python 设计模式-建造者模式

    问题:在上一篇python设计模式:抽象工厂模式中,我们尝试用抽象工厂模式规范化了 Pizza 原材料的供应以及 Pizza 的创建.但是我们忽略了一个问题,那就是每种 Pizza 的烘焙时间依赖于生 ...

  6. 以下选项不是python打开方式的是-以下选项中,不是Python对文件的打开模式的是...

    [填空题]查阅<住房城乡建设部办公厅关于调整建设工程计价依据增值税税率的通知>(建办标[2018]20号)文件规定,工程造价计价依据中增值税税率由10%调整为 %. (4.0分) [填空题 ...

  7. python的编程模式-实例解析Python设计模式编程之桥接模式的运用

    这篇文章主要介绍了Python设计模式编程之桥接模式的运用,桥接模式主张把抽象部分与它的实现部分分离,需要的朋友可以参考下 我们先来看一个例子: #encoding=utf-8 # #by panda ...

  8. python 正则表达式 re (.*?)和(.*)的区别(贪婪模式非贪婪模式)惰性匹配

    贪婪模式 .* 非贪婪模式 .*? 1. .匹配任意除换行符"\n"外的字符: 2. *表示匹配前一个字符0次或无限次: 3. +或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*? ...

  9. python 3 廖雪峰博客笔记(三) 命令行模式与交互模式

    python 的代码一般保存为 .py结尾的文本文件格式 比如 add.py 里写下如下内容 100 + 200 执行 add.py有两种方式: 1. 命令行方式:将python代码写入脚本中执行 p ...

最新文章

  1. TP5实现支付宝电脑网站支付学习笔记
  2. [数据结构] 希尔排序
  3. python 画图_用python解九宫格以及画图
  4. debug内exe文件复制到桌面无法打开_Qt打包生成exe步骤和无法定位程序输入点_gxx_personality_v0于动态链接库...
  5. sock 文件方式控制宿主机_sock
  6. MySQL最早版本源码_MySQL旧版本升级为新版本
  7. Python多线程(自学必备 超详细)
  8. 流水线合成材料依赖表的生成算法
  9. mysql deadlock6_mysql deadlock、Lock wait timeout解决和分析
  10. [转载] Java 单例(Singleton)类
  11. Web APIs概念详解(附图解)
  12. php gmssl,gmssl
  13. Vpro 相机操作类
  14. dns被劫持了怎么处理 5种方法教你处理
  15. 微信竟可以查出行轨迹了,预计又一波情侣要分手?
  16. 模型检测--工具PRISM
  17. 2023考研数学冲刺模拟卷资源———以及模拟卷难度评估
  18. 大学生月入过万的创业好项目——自媒体
  19. 带你玩转kubernetes-k8s(第54篇-Kubernetes之使用API聚合机制扩展API资源)
  20. 自动化签到的三种方式

热门文章

  1. Excel 版本对应
  2. 视频显示分辨率标准大全
  3. GPT-4来了,业财税融的Copilot还会远么?| 2023百望云数字商业创新峰会上海站分享
  4. java堆内存详解操作
  5. 坤驰科技发布高性价比高速数据采集卡QT1140系列
  6. 五子棋人机对弈代码——之贪心算法
  7. 俞栋谈腾讯AI Lab方向和进展;腾讯AI加速器第二期开始招募
  8. python爬取vnd.openxmlformats-officedocument.spreadsheetml.sheet类型数据
  9. oppo r11s安装linux,OPPO力推Hyper Boost系统加速引擎,全方位为手机加速
  10. 混淆js代码--Uglifyjs使用