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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
Tensorflow之Saver的用法详解
Apr 23 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
python 利用已有Ner模型进行数据清洗合并代码
Dec 24 Python
Python sys模块常用方法解析
Feb 20 Python
Python txt文件常用读写操作代码实例
Aug 03 Python
python 爬取吉首大学网站成绩单
Jun 02 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编程开发“虚拟域名”系统
2006/10/09 PHP
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
Javascript 二维数组
2009/11/26 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
js实现微博发布小功能
2017/01/12 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
从Python程序中访问Java类的简单示例
2015/04/20 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
python中退出多层循环的方法
2018/11/27 Python
Python元组常见操作示例
2019/02/19 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
python应用文件读取与登录注册功能
2019/09/23 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
规范化管理年活动总结
2014/08/29 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
投标承诺函格式
2015/01/21 职场文书