python selenium chrome 控制devtools 一些线索
- chrome webdriver下载地址:http://chromedriver.storage.googleapis.com/index.html
注意和国产浏览器的内核版本对应(星愿浏览器80.0.3987.163内核可以使用80.0.3987.106的webdriver)
只要浏览器的内核版本不低于webdriver的版本即可。Nuget上的最低版本是71的,所以QQ浏览器无法使用C#控制,QQ只有版本70的内核。 - 如果要先开浏览器再用selenium控制的话,需要给浏览器添加启动参数:
twinkstar.exe --remote-debugging-port=9222
- python调用现有星愿浏览器的初始化
from selenium import webdriver
options = webdriver.ChromeOptions()
options.debugger_address = "127.0.0.1:9222"
driver = webdriver.Chrome(options=options)
- 使用devtools内建的截图功能!(内核59开始支持,详见https://developers.google.com/web/updates/2017/04/devtools-release-notes)
import base64
res = driver.execute_cdp_cmd('Page.captureScreenshot', {})with open('hao123.png', 'wb') as f:img = base64.b64decode(res['data'])f.write(img)
- Flash缩放的JS原生方法是
Zoom(percentage)
,其中percentage
是放大倍率的倒数乘以100,例如放大4倍就是1/4*100=25。 - Flash缩放之后,移动视野的JS原生方法是
Pan(x_position,y_position,mode)
。
x_position
参数是移动横坐标数,可以给负值
y_position
参数是移动纵坐标数,可以给负值
mode
参数暂时不清楚,先填1 表示表示坐标的单位,但其值为"0"时,以象数为单位,为"1"时,以百分比为单位。 - 控制整个Flash的透明度的JS原生方法
TSetProperty("_root",6,50)
其中最后一个参数是不透明度从0~100,0是不显示,100是完全不透明。 - 设置模拟设备的CDP命令是
'Emulation.setDeviceMetricsOverride', {mobile: true,width: 412,height: 732,deviceScaleFactor: 2.625,
}
- python selenium指定截取区域的命令是
clip = driver.execute_script('return {x: 0, y: 0, width: 4320, height: 7680, scale: 1};', '') # 模拟的是竖屏
res = driver.execute_cdp_cmd('Page.captureScreenshot', {'clip': clip})
- 综上,python需要执行的操作有(截小花仙页游选人界面的高清图(正中间那个))
from selenium import webdriver
import base64# 接入既有的浏览器进程
options = webdriver.ChromeOptions()
options.debugger_address = "127.0.0.1:9222"
driver = webdriver.Chrome(options=options)# 直接开启设备模拟,不要再手动开devtools了,否则截图截的是devtools的界面!
driver.execute_cdp_cmd('Emulation.setDeviceMetricsOverride', {'mobile':False, 'width':4320, 'height':7680, 'deviceScaleFactor': 1})
# 缩放Flash
driver.execute_script('document.getElementsByTagName("embed")[0].Zoom(100)')
driver.execute_script('document.getElementsByTagName("embed")[0].Zoom(25)')
# Flash缩放后的视野位置微调,还需要完善
driver.execute_script('document.getElementsByTagName("embed")[0].Pan(0,-300,0)')
# 执行截图
res = driver.execute_cdp_cmd('Page.captureScreenshot', { 'fromSurface': True})
# 返回的base64内容写入PNG文件
with open('hao123.png', 'wb') as f:img = base64.b64decode(res['data'])f.write(img)# 关闭设备模拟
driver.execute_cdp_cmd('Emulation.clearDeviceMetricsOverride', {})
# Flash缩放复原
driver.execute_script('document.getElementsByTagName("embed")[0].Zoom(500)')
python selenium chrome 控制devtools 一些线索相关推荐
- Python + Selenium + Chrome Driver 自动化点击+评论+刷弹幕(仅供学习)
Python + Selenium + Chrome Driver 自动化点击 评论 刷弹幕 首先说明,这篇博文仅供学习!仅供学习!仅供学习! 不要拿去做其他事,封号概不负责!!! 突发奇想 首先先说 ...
- Python + Selenium + Chrome 使用代理 auth 的用户名密码授权
2019独角兽企业重金招聘Python工程师标准>>> 米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放.私密.独享代理,并可免费试用 米扑代理官网:https://pro ...
- Python selenium chrome 环境配置
Python selenium chrome 环境配置一.参考文章:1. 记录一下python easy_install和pip安装地址和方法http://heipark.iteye.com/blog ...
- python+selenium+chrome实现淘宝购物车秒杀自动结算
python+selenium+chrome实现淘宝购物车秒杀自动结算 一.所需环境 二.安装 三.代码 最后run()一把就ok了!! 之前总是想要买aj,但是淘宝店铺每次发售手动抢的时候一般都会被 ...
- 12306 抢票 python + selenium + chrome (二) 基础准备的软件和材料
我使用的 vmware 14 + ubuntu 16 + PyCharm 开发环境 12306抢票 python+selenium+chrome 实现一 12306抢票 python+selen ...
- python + selenium +chrome爬取qq空间好友说说并存入mongodb数据库
python + selenium +chrome爬取qq空间好友说说并存入mongodb数据库 准备阶段 在正式开始在前需要先准备好做爬虫的工具,本例使用chrome无头浏览器进行爬取工作,也可使用 ...
- Python - Selenium Chrome 模拟手机
Python - Selenium Chrome 模拟手机 Max.Bai 2017-04 Chrome浏览器支持移动端调试,当然ChromeDriver也支持移动端测试了. 使用python调用We ...
- Linux服务器上搭建Python+Selenium+Chrome的运行环境(静默模式、无图形)
本文是<统计CSDN博客的访问量>的部署篇,为了持续统计CSDN的访问量.并进行分析,因此需要在Linux上搭建Selenium + Chrome driver的运行环境 安装Seleni ...
- python+selenium+chrome 做滑动验证码 会被浏览器检测到使用的自动软件导致滑动验证失败
python+selenium+chrome 做滑动验证码 会被浏览器检测到使用的自动软件导致滑动验证失败 解决方法:代码中添加: import time from selenium import w ...
最新文章
- python使用kafka原理详解真实完整版_转:Kafka史上最详细原理总结 ----看完绝对不后悔...
- CentOS 7 使用iptables 开放端口
- java定焦点_Android 开发 Camera1_如何使用对焦功能
- 利用 VMware vRealize - 构建和优化云管理
- 微软BUG Bounty悬赏项目扩展至.NET Core和ASP.NET Core
- CodeForces - 869B The Eternal Immortality
- linux系统 设置网卡ping通主机连上外网
- java怎么改运行图标,java修改进程图标
- linux ora -03113,ORA-03113:通信通道的文件结尾
- MATLAB的semilogy函数的理解
- 编写LLVM Pass模块知识点梳理
- WPF学习之绘图和动画
- 谷歌推出逐字搜索Verbatim
- python0基础自学英语_0基础怎么自学python,大概要多久?
- 视频画中画制作,一款简单好上手的软件
- str.substring(0,str.length() -1)用法
- 图像语义分割入门:FCN/U-Net网络解析
- java获取word图片_java代码获取word文件中的图片
- mysql优化--博森瑞
- 有源电力滤波器并联三相apf matlab simulink仿真 谐波检测谐波补偿