zoukankan      html  css  js  c++  java
  • python selenium Chrome模拟手机浏览器(十七)

      在做移动端页面测试时可以利用Chrome mobile emulation 辅助完成页面的适配问题,但是目前手机市场上的型号居多我们也没有办法通过人工的模式一一的去适配,所以这里考虑到通过自动化的模式来模拟,下面介绍两种方式通过selenium调用Chrome mobile emulation来完成自动化测试。

    1.通过device name模拟的手机型号,示例代码如下

    # -*- coding: utf-8 -*-
    # @Time    : 2017/11/30 15:42
    # @Author  : Hunk
    # @File    : ex81.py
    # @Software: PyCharm
    import time
    from selenium import webdriver
    
    mobileEmulation = {'deviceName': 'Apple iPhone 4'}
    options = webdriver.ChromeOptions()
    options.add_experimental_option('mobileEmulation', mobileEmulation)
    driver = webdriver.Chrome(chrome_options=options)
    driver.get('http://m.baidu.com')
    time.sleep(3)
    driver.close()

    附录:

      deviceName列表

    mobile_emulation = {
                "deviceName": "Apple iPhone 3GS",
                "deviceName": "Apple iPhone 4",
                "deviceName": "Apple iPhone 5",
                "deviceName": "Apple iPhone 6",
                "deviceName": "Apple iPhone 6 Plus",
                "deviceName": "BlackBerry Z10",
                "deviceName": "BlackBerry Z30",
                "deviceName": "Google Nexus 4",
                "deviceName": "Google Nexus 5",
                "deviceName": "Google Nexus S",
                "deviceName": "HTC Evo, Touch HD, Desire HD, Desire",
                "deviceName": "HTC One X, EVO LTE",
                "deviceName": "HTC Sensation, Evo 3D",
                "deviceName": "LG Optimus 2X, Optimus 3D, Optimus Black",
                "deviceName": "LG Optimus G",
                "deviceName": "LG Optimus LTE, Optimus 4X HD" ,
                "deviceName": "LG Optimus One",
                "deviceName": "Motorola Defy, Droid, Droid X, Milestone",
                "deviceName": "Motorola Droid 3, Droid 4, Droid Razr, Atrix 4G, Atrix 2",
                "deviceName": "Motorola Droid Razr HD",
                "deviceName": "Nokia C5, C6, C7, N97, N8, X7",
                "deviceName": "Nokia Lumia 7X0, Lumia 8XX, Lumia 900, N800, N810, N900",
                "deviceName": "Samsung Galaxy Note 3",
                "deviceName": "Samsung Galaxy Note II",
                "deviceName": "Samsung Galaxy Note",
                "deviceName": "Samsung Galaxy S III, Galaxy Nexus",
                "deviceName": "Samsung Galaxy S, S II, W",
                "deviceName": "Samsung Galaxy S4",
                "deviceName": "Sony Xperia S, Ion",
                "deviceName": "Sony Xperia Sola, U",
                "deviceName": "Sony Xperia Z, Z1",
                "deviceName": "Amazon Kindle Fire HDX 7″",
                "deviceName": "Amazon Kindle Fire HDX 8.9″",
                "deviceName": "Amazon Kindle Fire (First Generation)",
                "deviceName": "Apple iPad 1 / 2 / iPad Mini",
                "deviceName": "Apple iPad 3 / 4",
                "deviceName": "BlackBerry PlayBook",
                "deviceName": "Google Nexus 10",
                "deviceName": "Google Nexus 7 2",
                "deviceName": "Google Nexus 7",
                "deviceName": "Motorola Xoom, Xyboard",
                "deviceName": "Samsung Galaxy Tab 7.7, 8.9, 10.1",
                "deviceName": "Samsung Galaxy Tab",
                "deviceName": "Notebook with touch",
                "deviceName": "iPhone 6"
    }

    2.设置指定分辨率,示例代码如下:

    # -*- coding: utf-8 -*-
    # @Time    : 2017/11/30 15:42
    # @Author  : Hunk
    # @File    : ex81.py
    # @Software: PyCharm
    import time
    from selenium import webdriver
    
    WIDTH = 320  # 宽度
    HEIGHT = 640  # 高度
    PIXEL_RATIO = 3.0  # 分辨率
    
    mobileEmulation = {"deviceMetrics": {"width": WIDTH, "height": HEIGHT, "pixelRatio": PIXEL_RATIO}}
    options = webdriver.ChromeOptions()
    options.add_experimental_option('mobileEmulation', mobileEmulation)
    
    driver = webdriver.Chrome(chrome_options=options)
    driver.get('http://m.baidu.com')
    
    time.sleep(3)
    driver.close()
  • 相关阅读:
    python count函数
    kubenetes服务发现
    k8s网络
    k8s创建pod流程
    openstack创建虚拟流程、各组件介绍
    生产者消费者问题
    Date类和Calendar类
    Timer定时器
    Java中的克隆
    注解
  • 原文地址:https://www.cnblogs.com/mengyu/p/8117881.html
Copyright © 2011-2022 走看看