robot自动化测试实现多浏览器支持

2023-11-02

做自动化测试首先要保证的就是用例覆盖面完整,而UI测试首先保证就是浏览器覆盖率问题,robot支持的火狐和谷歌浏览器、IE都很好,当然IE可能有一点问题,不过10、11切换的用问题不大。

目前用户大多用360浏览器进行上网,我们构建一下使360浏览器也能进行自动化测试,首先说一下原理,360浏览器是基于谷歌内核开发出来的浏览器,所以驱动也会识别该浏览器,因此可以添加自动化测试,至于搜狗浏览器目前正在研究其方式,他双核属于谷歌和IE加上自己开发的东西,驱动不明确。有点跑题了,等我研究搜狗浏览器以后会继续更新的。

说明:基于Selenium: 3.0.2

一、各浏览器webdriver

说明: 
1. selenium中,firefox需要下载webdriver(geckodriver.exe)。 
2. 360极速和360安全浏览器的内核是chrome拷贝两份chromedriver 2.20,可以重命名为 360sechromedriver。(本人实现两种浏览器,只介绍一种浏览器360急速和360安全原理一样)


注意,360浏览器会自动升级。请关闭自动升级。 
目录:C:\Users\username\AppData\Roaming\360se6\Application\9.1.1.250\installer,找到chromeup.dll文件,删除或者重命名


二、增加代码支持让RIDE识别360浏览器

修改selenium\webdriver目录下__init__.py代码。 
目录:C:\Python27\Lib\site-packages\selenium\webdriver


增加导入这个包的代码,一会写这段代码,初始化时候就可以找到该代码调用驱动了。

修改Selenium2Library\keywords下browsermanagement.py代码 
目录:C:\Python27\Lib\site-packages\robotframework_selenium2library-1.8.1-py2.7.egg\Selenium2Library\keywords

代码段一:


首先把我们浏览器名字加入进去。

让ride识别

代码二:搜索def _make_chrome,增加两段代码

 

增加启动时引用360驱动的代码。

三、360浏览器的实现代码

目录:C:\Python27\Lib\site-packages\selenium\webdriver

文件1:__init__.py,可以为空,也可以增加说明文字。例如,作者,版本,功能等。 
文件2:新建webdriver.py,实现360极速浏览器。代码如下:

from selenium.webdriver import Chrome as ChromeWebdriver
from selenium.webdriver.chrome.options import Options
import os

class WebDriver(ChromeWebdriver):

    def __init__(self, b360bin=None, executable_path="360chromedriver", port=0,
                    chrome_options=None, service_args=None,
                    desired_capabilities=None, service_log_path=None):

        # 360 broswer direction
        if b360bin:
            self.bin = b360bin
        else:
            self.bin = r'%s\360Chrome\Chrome\Application\360chrome.exe' % os.getenv('LOCALAPPDATA') 
        chrome_options = Options()
        chrome_options.binary_location = self.bin
        ChromeWebdriver.__init__(self, executable_path, port,
                    chrome_options, service_args,
                    desired_capabilities, service_log_path)
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

360安全浏览器类似:

from selenium.webdriver import Chrome as ChromeWebdriver
from selenium.webdriver.chrome.options import Options
import os

class WebDriver(ChromeWebdriver):

    def __init__(self, b360bin=None, executable_path="360sechromedriver", port=0,
                    chrome_options=None, service_args=None,
                    desired_capabilities=None, service_log_path=None):

        # 360se broswer direction
        if b360bin:
            self.bin = b360bin
        else:
            self.bin = r'C:\Users\Administrator\AppData\Roaming\360se6\Application\360se.exe' 
        chrome_options = Options()
        chrome_options.binary_location = self.bin
        ChromeWebdriver.__init__(self, executable_path, port,
                    chrome_options, service_args,
                    desired_capabilities, service_log_path)
这样就构建好了。打开ride

浏览器填写 chrome360se就OK了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

robot自动化测试实现多浏览器支持 的相关文章

随机推荐

  • 基于深度学习的图像分割总结

    一 图像分割类别 随着深度学习的发展 在分割任务中出现了许多优秀的网络 根据实际分割应用任务的不同 可以大致将分割分为三个研究方向 语义分割 实例分割 全景分割 这三种分割在某种意义上是具有一定的联系的 语义分割 像素级别的语义分割 对图像
  • SpringBoot 缓存之 @Cacheable介绍

    原文链接 SpringBoot 缓存之 Cacheable介绍 编程屋 目录 1 概述 2 Cacheable注解使用详细介绍 2 1 Cacheable注解使用 2 2 Cacheable 注解的属性 1 概述 Spring高版本引入了c
  • 在emWin上显示汉字

    在emWin上显示汉字 最重要的一点 我经常忘记 加上GUI UC SetEncodeUTF8 转换编码 1 首先制造字库 先制作一个普通的txt文档 然乎保存为UTF 16LE 传统的就是以Unicode保存 然后打开字体库转换软件Fon
  • Manifest merger failed with multiple errors

    合并三方SDK的时候发现错误 如上 网上替换什么的都处理了 不太好 log具体信息又查看不到 在android studio这里找到terminal 并输入 gradlew processDebugManifest可以查看gradle bu
  • 点击唤起电话功能和企业微信聊天窗口事件(H5)

    1 点击唤起电话功能 const mobileShow 18888880000 唤起电话功能 const handlerCall phone string gt const url tel phone window location hre
  • Windows编程第一课:纯手工创建一个窗体

    第一节 创建应用程序主窗体 1 创建消息处理函数 LRESULT CALLBACK fWinProc HWND hWnd UINT uMsg WPARAM wParam LPARAM lParam switch uMsg case WM C
  • java stream 常用操作

    stream 常用操作 1 收集对象属性 2 对象属性分组 1 收集对象属性 List ids dataList stream map TradeSalesExwarehouseInfoForRailwayVo getRelatedDocI
  • 海思 ive

    海思 ive 简单例子 https download csdn net download qq 21193563 10047254 https github com hanson young nniefacelib nniefacelib是
  • 代码质量静态检查工具

    一 点睛 代码质量静态检查工具可以自动快速发现劣质代码 潜在Bug 给出代码优化建议 因此代码静态检查工具在实际项目研发中有举足轻重的作用 利用好各种优秀检查工具是做好品质管理的重要环节 二 静态分析和动态分析 代码分析技术分为 第一 静态
  • 【Pycharm教程】推荐一些 PyCharm 中常用的插件

    工欲善其事 必先利其器 PyCharm 上面的插件是非常实用的 能够巧妙的使用插件对于我们的开发功能的帮助非常大 下面我为大家推荐一些不错的插件 1 Key Promoter X 快捷键 用来提示快捷键的插件 帮助我们尽可能的摆脱鼠标操作
  • 147_Merkle(默克尔)树简单理解

    Merkle 默克尔 树 又叫哈希树 是一种典型的二叉树结构 由一个根节点 若干中间节点以及若干叶节点组成 结构示例图 默克尔树的所有叶子节点 都用来存放数据 所有非叶子节点 都用来存放其所有孩子节点的内容的hash值 基于这种数据存储方式
  • MATLAB 使用PLS建模并预测

    1 数据标准化 可省略 例如z score 2 主成分分析 help pca 使用这个指令查看帮助 coeff score latent tsquared explained pca ingredients 3 PLS建模并预测 help
  • web3.0涉及的技术

    非同质化代币 非同质化代币 Non Fungible Tokens NFTs 是一种数字资产 与传统的加密货币 如比特币或以太币 不同 它们具有独特性和不可替代性 NFTs 是基于区块链技术的数字资产 用于表示和证明数字或实物资产的唯一性
  • SpringBoot+SpringMVC+Mybatis+Swagger实现用户注册、登录功能

    SpringBoot Mybatis Swagger实现用户注册 登录功能 文章目录 1 实现流程图 2 后台业务开发 3 启动项目 测试结果 1 实现流程图 2 后台业务开发 添加实体类 entity beans pojo 使用Easy
  • set_multicycle_path

    set multicycle path的语法 保持关系与建立关系相关联 使用以下公式计算最常见情况下的保持周期数 默认情况下 setup path multiplier 是用对应的目的时钟定义的 要修改有关源时钟的setup需求 使用 st
  • js中类数组对象以及类数组转换的方法(ES6, ES5)

    js中类数组对象以及类数组转换的方法 ES6 ES5 类数组 Array like 对象 通常我们可以把拥有一个length属性和非负整数属性的对象称为类数组对象 JavaScript 数组与一般对象的区别 当有新元素添加到列表中时 自动更
  • 企业网络规划和设计方案(一)

    企业网络规划和设计方案 一 工程概况公司有一栋独立大楼 高4层 每层面积2000平方米 由研发技术部 成员60人 分成硬件 25 和软件 35 2大部门 生产部 主要产品是手持电子产品 110人 管理人员10人 和市场部 30个销售 10个
  • AV1生态系统更新:2019年6月

    Kay是热心的AV1关注者 他在blog上持续搜集了关于AV1的进展 很抱歉 我们延误了很久才发布这篇非常不错的blog 希望对你了解AV1有所帮助 文 Kay Singh 译 John 原文 https www singhkays com
  • 分享8个免费的超清背景图片下载网站

    想用免费的桌面背景图 还是前端开发做页面展示 下面推荐10个超清的免费背景图下载网站 1 wallhaven cc wallhaven cc拥有进1000万张高质量壁纸 无广告 支持名称搜索 像素搜索 整体色调搜索 不支持中文 采用IPV6
  • robot自动化测试实现多浏览器支持

    做自动化测试首先要保证的就是用例覆盖面完整 而UI测试首先保证就是浏览器覆盖率问题 robot支持的火狐和谷歌浏览器 IE都很好 当然IE可能有一点问题 不过10 11切换的用问题不大 目前用户大多用360浏览器进行上网 我们构建一下使36