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将unicode转为str的方法
Jun 21 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python检测数据类型的方法总结
May 20 Python
python实现大文本文件分割
Jul 22 Python
Python Django 命名空间模式的实现
Aug 09 Python
python 实现绘制整齐的表格
Nov 18 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
如何在Python中创建二叉树
Mar 30 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
PHP中MD5函数使用实例代码
2008/06/07 PHP
javascript加号"+"的二义性说明
2013/03/04 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
vuejs如何配置less
2017/04/25 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
js实现无缝轮播图
2020/03/09 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
python自动化测试之连接几组测试包实例
2014/09/28 Python
python清理子进程机制剖析
2017/11/23 Python
python K近邻算法的kd树实现
2018/09/06 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
经典C++面试题一
2016/11/06 面试题
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
车间工艺员岗位职责
2013/12/09 职场文书
推荐信怎么写
2014/05/09 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
森林病虫害防治方案
2014/06/02 职场文书
银行奉献演讲稿
2014/09/16 职场文书
外国人来华邀请函
2015/01/31 职场文书
Java tomcat手动配置servlet详解
2021/11/27 Java/Android