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线程的两种编程方式
Apr 14 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
python字符类型的一些方法小结
May 16 Python
Windows下python2.7.8安装图文教程
May 26 Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
Django如何批量创建Model
Sep 01 Python
pytorch--之halfTensor的使用详解
May 24 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 Python
Python 数据科学 Matplotlib图库详解
Jul 07 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
Javascript Select操作大集合
2009/05/26 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
python opencv摄像头的简单应用
2019/06/06 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Python序列类型的打包和解包实例
2019/12/21 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
小学毕业感言150字
2014/02/05 职场文书
业务员自荐信范文
2014/04/20 职场文书
安全标兵事迹材料
2014/08/17 职场文书
共青团员自我评价范文
2014/09/14 职场文书
导游词开场白
2015/01/31 职场文书
银行实习推荐信
2015/03/27 职场文书
个人欠条范本
2015/07/03 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
Python办公自动化PPT批量转换操作
2021/09/15 Python