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 FTP操作类代码分享
May 13 Python
Python读写文件方法总结
Jun 09 Python
pip命令无法使用的解决方法
Jun 12 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
python-pyinstaller、打包后获取路径的实例
Jun 10 Python
Django 创建/删除用户的示例代码
Jul 24 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
python爬虫模拟浏览器访问-User-Agent过程解析
Dec 28 Python
Python pandas如何向excel添加数据
May 22 Python
python 瀑布线指标编写实例
Jun 03 Python
Python如何使用ConfigParser读取配置文件
Nov 12 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/04/09 欧美动漫
删除数组元素实用的PHP数组函数
2008/08/18 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
使用python生成目录树
2018/03/29 Python
python发送告警邮件脚本
2018/09/17 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
无毒社区工作方案
2014/05/23 职场文书
垃圾桶标语
2014/06/24 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
Python实现生活常识解答机器人
2021/06/28 Python