前言

我们每一个的selenium测试都应该在指定的环境下运行,这个环境可以是web浏览器、移动设备、移动模拟器等等。

那怎么来指定我们的selenium测试脚本运行环境呢?

本次分享主要解决这个问题!!!

在python版本的webdrive中,DesiredCapabilities类为我们提供了解决方案,通过这个类,我们能够配置webdriver在指定的环境执行我们的测试脚本。

我们先看一张实际测试过程中会应用到的结构图,基于selenium grid进行分布式测试:

在上图中,我们可以使用windows下ie、firefox或linux下ie、firefox进行测试,甚至可以设置使用andriod或ios设备下浏览器进行测试。

那怎么来进行设置呢?

我们先看一下DesiredCapabilities的源码

源码分析

DesiredCapabilities类代码在C:\Python27\Lib\site-packages\selenium\webdriver\common\desired_capabilities.py。

注:笔者的python安装在C盘下。

class DesiredCapabilities(object):"""    Set of default supported desired capabilities.
Use this as a starting point for creating a desired capabilities
object for requesting remote webdrivers for
connecting to selenium server or selenium grid.
Usage Example::        from selenium import webdriverselenium_grid_url = "http://198.0.0.1:4444/wd/hub"# Create a desired capabilities object as a starting point.capabilities = DesiredCapabilities.FIREFOX.copy()capabilities['platform'] = "WINDOWS"capabilities['version'] = "10"# Instantiate an instance of Remote WebDriver with the desired capabilities.driver = webdriver.Remote(desired_capabilities=capabilities,command_executor=selenium_grid_url)Note: Always use '.copy()' on the DesiredCapabilities object to avoid the sideeffects of altering the Global class instance.    """FIREFOX = {"browserName": "firefox","version": "","platform": "ANY","javascriptEnabled": True,"marionette": True,}INTERNETEXPLORER = {"browserName": "internet explorer","version": "","platform": "WINDOWS","javascriptEnabled": True,}EDGE = {"browserName": "MicrosoftEdge","version": "","platform": "WINDOWS"}CHROME = {"browserName": "chrome","version": "","platform": "ANY","javascriptEnabled": True,}OPERA = {"browserName": "opera","version": "","platform": "ANY","javascriptEnabled": True,}SAFARI = {"browserName": "safari","version": "","platform": "MAC","javascriptEnabled": True,}HTMLUNIT = {"browserName": "htmlunit","version": "","platform": "ANY",}HTMLUNITWITHJS = {"browserName": "htmlunit","version": "firefox","platform": "ANY","javascriptEnabled": True,}IPHONE = {"browserName": "iPhone","version": "","platform": "MAC","javascriptEnabled": True,}IPAD = {"browserName": "iPad","version": "","platform": "MAC","javascriptEnabled": True,}ANDROID = {"browserName": "android","version": "","platform": "ANDROID","javascriptEnabled": True,}PHANTOMJS = {"browserName": "phantomjs","version": "","platform": "ANY","javascriptEnabled": True,}

翻译下:

Set of default supported desired capabilities.
desired capabilities默认支持的设置。Use this as a starting point for creating a desired capabilities object
forrequesting remote webdrivers for connecting to selenium server
or selenium grid.
使用该类为selenium server或selenium grid启动一个desired capabilities配置

对配置项进行解释

FIREFOX = {    "browserName": "firefox",  # 浏览器名称"version": "",             # 操作系统版本"platform": "ANY",         # 平台,这里可以是windows、linux、andriod等等"javascriptEnabled": True, # 是否启用js"marionette": True,        # 这个值没找对应的说明^_^  不解释了}

DesiredCapabilities示例

from selenium import webdriver# 本地启动selenium grid
selenium_grid_url = "http://127.0.0.1:4444/wd/hub"# 创建一个DesiredCapabilities实例
capabilities = DesiredCapabilities.FIREFOX.copy()
capabilities['platform'] = "WINDOWS"  # 指定操作系统capabilities['version'] = "10"   # 指定操作系统版本# 连接到远程服务进行自动化测试
driver = webdriver.Remote(desired_capabilities=capabilities,command_executor=selenium_grid_url)

总结

这里的本质就是

更多精彩:

  1. webdriver介绍&与Selenium RC的比较

  2. Python Selenium Webdriver安装手册

  3. 创建你的第一个webdriver python代码

  4. 基于Excel参数化你的Selenium2测试

  5. Python Selenium设计模式-POM

  6. Python多线程Selenium跨浏览器测试

  7. python selenium2示例 - 生成 HTMLTestRunner 测试报告

  8. python selenium2示例 - email发送

  9. python selenium2示例 - SSL处理

  10. python selenium2示例 - 同步机制

  11. python selenium2示例 - 日志管理

  12. python selenium2源码分析概要

Hello,伙伴们

长按二维码关注我们吧!

Selenium Webdriver Desired Capabilities相关推荐

  1. 使用Selenium WebDriver测试自动化的22条实用技巧

    使用Selenium进行测试自动化已使全球的网站测试人员能够轻松执行自动化的网站测试. Webdriver是Selenium框架的核心组件,通过它您可以针对不同类型的浏览器(例如Google Chro ...

  2. selenium webdriver 原理概述

    背景 虽然掌握selenium webdriver提供的各种方法,就可以做web的UI自动化,但是本着知其然,也要知其所以然的态度,也为了提升自己.了解下selenium webdriver的原理是必 ...

  3. appium简明教程(7)——Desired Capabilities详解

    Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情 ...

  4. Selenium Webdriver原理终于搞清楚了

    目录 1. Selenium的历史 2. WebDriver协议 3. Selenium驱动浏览器原理 4. 测试代码与Webdriver的交互 5. Webdriver与浏览器的关系 6. Sele ...

  5. python webdriver点击指令_测开系列Selenium Webdriver Python(20)--Webdriver运行原理

    Webdriver运行原理 转帖请注明出处!谢谢 在开发Webdriver的自动化脚本过程中,Webdriver后台在创建WebDriver实例的过程中,先确认浏览器的原生组件中是否存在可匹配的版本. ...

  6. 使用Selenium Webdriver进行全屏截图

    在任何网页测试人员中,执行效果最好的操作之一就是对网页进行截图. 每当测试人员发现并报告错误时,如果不支持该问题的屏幕截图甚至视频,就不会认真对待该错误. 不论您进行的测试类型是什么,包括硒自动化测试 ...

  7. php调用selenium,通过PHP exec()执行Selenium webdriver

    我构建了一个python脚本,它使用Selenium和Firefox加载一些网站并处理它们的内容.因为我想在PHP中使用该脚本的输出,所以我使用PHP的exec()函数.在 我的python测试脚本如 ...

  8. Appium基础:Desired Capabilities详讲

    Desired Capabilities在启动session的时候是必须提供的,先看如下代码: Desired Capabilities本质上是key value的对象,他告诉appium serve ...

  9. APP自动化测试系列之Desired Capabilities详解

    VOL 163 28 2020-09 今天距2021年94天 这是ITester软件测试小栈第163次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

最新文章

  1. android跨进程读写内存,Android 跨进程内存泄露
  2. Android OpenGL ES 开发教程(20):颜色Color
  3. 自动配置IE代理脚本
  4. sql 增加链接服务器,SQL server利用脚本添加链接服务器,可设置别名
  5. xshell 快速复制打开之前用过的ssh
  6. nginx 根据IP 进行灰度发布
  7. 机器翻译(洛谷-P1540)
  8. 最全的常用正则表达式大全
  9. 记一次 Git GitHub 实操
  10. 【Shell】检查字符串大小
  11. pip安装包报错Could not find a version that satisfies the requirement pymysql (from versions: none)
  12. springmvc中实现quartz定时任务
  13. mybatis 注解使用
  14. Canvas 画时钟
  15. 时延波束形成 matlab,有关波束形成程序解释
  16. vue3 + router-view + keepalive parentComponent.ctx.deactivate is not a function
  17. 领导力的21个法则-盖子法则
  18. 【测试】软件测试之黑盒、白盒、灰盒测试
  19. windows cmd字典
  20. 划词翻译脚本--AutoHotkey

热门文章

  1. 在Unity中,PlayableBehaviour如何获取片段的开始和结束时间?
  2. 搜狐全面进军SNS市场 目标直指开心网
  3. 如何从上位机或者触摸屏设定Time或S5Time值?
  4. 学生成绩查询系统需求规格说明书
  5. Velocity官方指南-Velocity是如何工作的
  6. ESP32 Light-sleep 测试指南
  7. Bentley ContextCapture Center Master最新版2023汉化版下载安装教程
  8. Jonathan Bryce说:Openstack属于全世界,并不属于一个公司,也不会属于一个国家……
  9. 苦逼了就辞职弃学去旅行?
  10. N5105小主机/软路由-AIDA64监控模板分享