Selenium-Server-Standalone搭建

2023-10-26

一、概述

      先说说背景吧,Selenium是一个优秀的自动化测试框架,可以模拟浏览器的各种操作来代替人工操作。不同的浏览器有 不同的driver来驱动。之前项目中使用的firefoxDriver,chromeDriver有一个缺点,就是浏览器必须和我的项目在同一台机器上。而项目一般是部署在linux机器上,这样一来,有如下几个缺点:
1、linux必须安装firefox,chrome浏览器,操作十分麻烦,而且受Linux版本限制。本人安装firefox还好,下载后解压就可以了,而chrome下载后还需要执行一些别的安装操作,由于linux是openSuse11的,缺各种包,从未安装成功过。
2、由于是linux系统,跑UI测试的时候,如果没有安装xmanager传输图形化界面,是看不到运行效果的。
3、在Linux上firefox浏览器运行测试总会有各种各样的问题,例如driver连接7055端口超时,在windows环境下则没有出现过。
鉴于上述问题,因此,想将测试和浏览器进行分离,通过控制远程机器的浏览器运行测试,而不仅限于在项目所在机器上。Selenium-Server-StandAlone很好的解决了这个问题。

二、RemoteWebDriver

     相比于各种浏览器Driver,RemoteWebDriver提供了控制远程浏览器能力,通过搭配Selenium-Server-standalone的服务,彻底将浏览器和测试代码分离。核心思想是:客户端代码通过RemoteWebDriver,发送浏览器操作至远程机器上的server服务,间接的操作浏览器。

三、操作步骤

1、下载Selenium-Server-standalonej,下载地址: Selenium-Server-StandAlone。下载到的是一个可执行的jar文件,例如Selenium-Server-standalone-2.46.0.jar。
2、将Selenium-Server-standalone-2.46.0.jar拷贝至目标机器上(推荐windows操作系统)。
3、通过命令行运行
java -jar selenium-server-standalone-2.46.0.jar -timeout=20 -browserTimeout=60 -Dwebdriver.chrome.driver=D:\chromedriver\chromedriver.exe
这样远端服务就启动了,可以接受客户端的请求。启动后控制台会显示服务的请求地址:http://127.0.0.1:4444/wd/hub。
客户端创建remoteWebDriver的时候,就需要设置这个地址。

4、由于我们使用的是chrome浏览器需要安装chrome浏览器,请自行安装。

5、下载chromedriver。selenium是通过chromedriver来操作chrome浏览器的,因此需要安装chromedriver。下载地址:chromedriver。此外chromedriver和chrome版本对应关系如图所示:


下载完成后,将exe文件放在启动参数-Dwebdriver.chrome.driver指定的位置即可。
  

四、客户端操作

1、  java代码示例
/**
     * 远程driver,默认使用chrome。
     * 远端需启动selenium-server-standalone
     * @param remoteUrl selenium-server服务端地址
     * */
    public WebDriver getDefaultRemoteDriver(String remoteUrl) throws Exception{
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setJavascriptEnabled(true);
        URL url = new URL(remoteUrl);
        WebDriver driver = new RemoteWebDriver(url,capabilities);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        return driver;
    }
之后的操作就和原来的firefoxDriver,chromeDriver一样了。
2、python代码片段示例
from selenium import webdriver;
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities;

# 获取远程浏览器driver,使用自己指定的selenium-server
def getChromeRemoteDriver(remoteUrl):
    return webdriver.Remote(command_executor=remoteUrl,desired_capabilities=DesiredCapabilities.CHROME)
运行效果

1、自动化测试平台点击运行测试,注意该平台部署在linux机器上,通过web访问。


2、远程机器上浏览器被打开,开始测试了


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

Selenium-Server-Standalone搭建 的相关文章

随机推荐

  • 在Unity3D中控制动画播放

    用Unity3D也算是好久了 但是每次做项目总还是能学到新的东西 这次做一个TPS的项目就遇到了这样一个问题 如何同时在上下半身播放不同的动画 解决方法其实是很简单 但由于对于动画资源的了解不足导致问题不断 最后是彻彻底底的研究了一遍Uni
  • myeclipse或sts启动时building workspace加载很长时间

    解决方法 Preference gt General gt Starup and Shutdown勾选Refresh workspace on startup完成 这样每次启动项目时重新加载工作空间 等于重新导入了一份项目 就省去了代码的校
  • esp32 作 MCU 端 使用 AT 命令对 esp8266 进行 OTA demo

    AT CUSTOTA total len current packet len offset checksum OK MCU 收到 gt 之后发送 data 当前数据写入到 FLASH 之后 打印 RECV OK 当接收到 total le
  • 解决Python OpenCV 读取IP摄像头(RTSP等)出现error while decoding的问题

    先来看一个简单的读取RTSP的示例程序 import cv2 cap cv2 VideoCapture rtsp admin admin 123 172 0 0 0 ret frame cap read while ret ret fram
  • 测试两个容器是否连通

    进入容器查看ip root f2b5cdfdc5ed private geth ip addr 1 lo
  • 如何打开Fedora 15命令行窗口CLI

    如何打开Fedora 15命令行窗口CLI 在DesktopFolder以外的桌面区域 右击可以看到Konsole 点击该快捷键 即可启动命令行窗口CLI 第一步 右击桌面 第二步 点击Konsole
  • python day03

    一 使用字符串 str helllo len str 用len函数求字符串长度 str upper 把字符串中的小写变成大写 str find 查找子串所在位置 str index 与find类似但找不到子串时会报错 str 2 从字符串中
  • c++ string函数详细返回值及用法!

    通过在网站上的资料搜集 得到了很多关于string类用法的文档 通过对这些资料的整理和加入一些自己的代码 就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了 下面先罗列出string类的函数有哪一些 然后再罗列出函数的原型
  • 学习 Python 之 Pygame 开发魂斗罗(一)

    学习 Python 之 Pygame 开发魂斗罗 一 Pygame 回忆Pygame 1 使用pygame创建窗口 2 设置窗口背景颜色 3 获取窗口中的事件 4 在窗口中展示图片 1 pygame中的直角坐标系 2 展示图片 3 给部分区
  • 在中国,把区块链玩得转的公司有这几家

    时下最火的Fintech 金融科技 非区块链莫属 区块链正在成为国家层面规划的重点领域之一 区块链可以简单理解为一个由所有参与者公共维护的账本 账本信息的公开使得所有参与者可以一起来校验记账的正确性 使得区块链成为所有参与者可以信任的载体
  • ubuntu编译和安装opencv-3.4.13

    1 安装相关软件包 打开ubuntu 安装以下工具 sudo apt install build essential sudo apt install cmake git libgtk2 0 dev pkg config libavcode
  • 芯片验证从零开始系列(一)——芯片验证概论

    芯片验证从零开始系列 一 芯片验证概论 芯片开发流程 动态验证技术 静态验证技术 Emulation和FPGA原型开发 测试平台框架 检查设计 回归测试 声明 未经作者允许 禁止转载 推荐一个IC FPGA新手入门的好网站 快 点 击 进
  • STL源码剖析-Allocator

    一 第一级配置器 顾名思义 Allocator是用来做内存分配的 第一级配置器指的是当需要128bytes以上的内存时直接使用malloc和realloc进行内存分配 代码如下 第一级配置器 2023 04 07 template
  • 解决M1处理器款mac安装PR闪退问题 Premier 2020 Mac(已适配M1芯片,支持最新款M1芯片Mac)可稳定运行

    苹果公司最新发布的基于M1芯片的Mac笔记本电脑应该很多小伙伴都入手了 但是最新的Mac由于采用的是基于ARM架构的核心 对很多基于Intel 英特尔 处理器的老款mac的软件应用兼容不太好 导致很多现有软件安装好后无法运行 或者报错和闪退
  • elasticsearch query related

    public abstract class EsBaseDaoImpl
  • 汽车电子_EMC测试_RE试验整改

    测试设备DUT状态 DUT带壳 未安装导电泡棉 辐射抗扰度试验 辐射抗扰度试验 270MHz频段出现画面卡死 试验暂停未继续 BCI试验 CBCI出现故障 RE试验 30 200M H方向 Frequency MHz MaxPeak dB
  • Maven高级:多环境配置与应用

    Maven高级 Maven高级 分模块开发 Maven高级 依赖管理 Maven高级 聚合和继承 Maven高级 根据需求完成生成 开发 测试环境 并在各个环境间切换运行 一 多环境配置与应用 这一节中 我们会讲两个内容 分别是多环境开发和
  • vue3 antd 表格点击和点击背景色

    页面
  • win7在64位系统下编译openssl

    以前在笔记本上配置过openssl 0 9 8g版本 今天在公司的台式机上配置死活没配置成功 机器的系统是win7 64位 编译openssl 1 0 1e出现各种莫名的错误 最后无意中编译了1 0 0 a版本编译成功了 如果出现ml找不到
  • Selenium-Server-Standalone搭建

    一 概述 先说说背景吧 Selenium是一个优秀的自动化测试框架 可以模拟浏览器的各种操作来代替人工操作 不同的浏览器有 不同的driver来驱动 之前项目中使用的firefoxDriver chromeDriver有一个缺点 就是浏览器