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 Sleep休眠函数使用简单实例
Feb 02 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
Python使用Django实现博客系统完整版
Sep 29 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
基于python实现聊天室程序
Jul 27 Python
浅谈python写入大量文件的问题
Nov 09 Python
Jacobi迭代算法的Python实现详解
Jun 29 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
一起来学习Python的元组和列表
Mar 13 Python
Python必备技巧之函数的使用详解
Apr 04 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中常见的缓存技术实例分析
2015/09/23 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
分析python请求数据
2018/08/19 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
Python定义一个函数的方法
2020/06/15 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
石油大学毕业生自荐信
2014/01/28 职场文书
医药销售自荐书
2014/05/29 职场文书
新品发布会策划方案
2014/06/08 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
Python读写yaml文件
2022/03/20 Python
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS
nginx配置指令之server_name的具体使用
2022/08/14 Servers