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的Django框架部署的一些建议
Apr 09 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
python正则实现提取电话功能
Feb 24 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Python面向对象之类和对象实例详解
Dec 10 Python
Python简单I/O操作示例
Mar 18 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
tensorflow求导和梯度计算实例
Jan 23 Python
Django之腾讯云短信的实现
Jun 12 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
python 制作网站小说下载器
Feb 20 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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
测试php函数的方法
2013/11/13 PHP
php绘制一个扇形的方法
2015/01/24 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
Python脚本实现12306火车票查询系统
2016/09/30 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
python opencv调用笔记本摄像头
2019/08/28 Python
python英语单词测试小程序代码实例
2019/09/09 Python
详解python statistics模块及函数用法
2019/10/27 Python
Python的形参和实参使用方式
2019/12/24 Python
Python龙贝格法求积分实例
2020/02/29 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
四种会话跟踪技术
2015/05/20 面试题
写给女生的道歉信
2014/01/14 职场文书
优秀民警事迹材料
2014/01/29 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
小学生交通安全寄语
2015/02/27 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
小学校本教研总结
2015/08/13 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis