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操作MySQL数据库的方法分享
May 29 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
python实现批量监控网站
Sep 09 Python
Django 前后台的数据传递的方法
Aug 08 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
python的常用模块之collections模块详解
Dec 06 Python
详解Python的三种可变参数
May 08 Python
python 梯度法求解函数极值的实例
Jul 10 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
python argparse模块通过后台传递参数实例
Apr 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
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
js单词形式的运算符
2014/05/06 Javascript
js常用DOM方法详解
2017/02/04 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python中几种导入模块的方式总结
2017/04/27 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python定时器实例代码
2017/11/01 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
python的继承知识点总结
2018/12/10 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
python 决策树算法的实现
2020/10/09 Python
用python批量移动文件
2021/01/14 Python
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
劳动工资科岗位职责范本
2014/03/02 职场文书
大学生村官考核材料
2014/05/23 职场文书
银行催款通知书
2015/04/17 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL