Selenium使用Chrome模拟手机浏览器方法解析


Posted in Python onApril 10, 2020

在使用Chrome浏览网页时,我们可以使用Chrome开发者工具模拟手机浏览器,在使用Selenium操作Chrome时同样也可以模拟手机浏览器。主要有以下两种用途。

测试H5页面在不同分辨率设备上的显示情况是否正常爬取数据(一般网站对移动设备浏览的反爬教弱)使用指定设备

操作方法非常简单,在ChromeOptions()浏览器选项,添加实验选项,mobileEmulation选项中通过devicename指定选择的设备即可,操作代码如下。

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('mobileEmulation', {'deviceName': 'iPhone X'}) # 模拟iPhone X浏览
driver = webdriver.Chrome(options=options)
driver.get('http://m.baidu.com')

操作效果如下图:

Selenium使用Chrome模拟手机浏览器方法解析

Chrome开发者工具中已经设置好的设备类型非常多,可以在开发者工具->Settings->Devices中查看,如下图:

Selenium使用Chrome模拟手机浏览器方法解析

使用自定义设备

mobileEmulation除了可以通过deviceName指定设备之外,还可以通过deviceMetrics指定设备指标,一般设备指标包含

  • width: 设备宽度
  • height: 设备高度
  • piexelRatio: 设备像素密度
  • userAgent:设备浏览器标识

使用示例如下:

from selenium import webdriver
options = webdriver.ChromeOptions()

options.add_experimental_option('mobileEmulation', 
  {'deviceMetrics':{'width': 320, 
           'height': 640, 
           'piexelRatio': 3.0, 
           'userAgent': 'Mozilla/5.0 (Linux; Android 4.1.1; GT-N7100 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/35.0.1916.138 Mobile Safari/537.36 T7/6.3'
           }
  }
  )

driver = webdriver.Chrome(options=options)
driver.get('http://m.baidu.com')

当然如果只需要测试不同分辨率的话也可以只设置width和height值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用PyCrypto实现AES加密功能示例
May 22 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
python根据txt文本批量创建文件夹
Dec 08 Python
简单了解Django应用app及分布式路由
Jul 24 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
Python上下文管理器全实例详解
Nov 12 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Pycharm快捷键配置详细整理
Oct 13 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 #Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 #Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 #Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 #Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 #Python
Python装饰器的应用场景代码总结
Apr 10 #Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 #Python
You might like
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
PHP自定义错误用法示例
2016/09/28 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
Python使用chardet判断字符编码
2015/05/09 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
毕业生自荐信
2013/12/14 职场文书
入党积极分子介绍信
2014/01/17 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
大型公益活动策划方案
2014/08/20 职场文书
个人委托书范本
2014/09/13 职场文书
小学语文教学反思范文
2016/03/03 职场文书
7个关于Python的经典基础案例
2021/11/07 Python