当前位置: 首页 > news >正文

如何在无头模式下运行WebDriver ?

如何在无头模式下运行WebDriver?如果您的CI工具(例如Jenkins)不支持UI,则可能需要这样做。

在无头模式下运行WebDriver自动测试在测试执行速度和更轻松地集成到CI管道方面具有优势。

下面,我们将使用PhantomJS和ChromeDriver以无头模式运行Selenium WebDriver测试。

PhantomJS

要使用PhantomJS以无头模式运行WebDriver测试,首先需要下载 PhantomJS可执行文件并将其保存在某个位置,例如项目的资源文件夹。

在下面的示例中,我将PhantomJS可执行文件放在src / test / resources / phantomjs中

您还需要ghost驱动程序依赖项:

<dependency>
    <groupId>com.github.detro.ghostdriver</groupId>
    <artifactId>phantomjsdriver</artifactId>
    <version>1.0.1</version>
</dependency>
复制代码

而你的Java类:

package com.sdetworld.tutorials.selenium

import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;

public class WebDriverBase {

  static protected WebDriver driver;

  public static void setup() {
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setJavascriptEnabled(true); // not really needed: JS enabled by default
    caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "src/test/resources/phantomjs");

    driver = new PhantomJSDriver(caps);
  }
  public static void main(String[] args) {
    WebDriverBase.setup();
    driver.get("https://www.testingexcellence.com");
  }
}
复制代码

ChromeDriver

要使用ChromeDriver在无头模式下运行WebDriver测试,您需要在pom.xml文件中添加相关的依赖项:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>${selenium.version}</version>              如果对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验
</dependency>                                           交流。感兴趣可以175317069,群内会有不定期的发放免费的资料链接,这些
<dependency>                                            资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊
    <groupId>org.seleniumhq.selenium</groupId>          发我,我会注明出处之后分享给大家。
    <artifactId>selenium-server</artifactId>
    <version>${selenium.version}</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>${selenium.version}</version>
</dependency>
<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
</dependency>
复制代码

接下来,我们指示WebDriver管理器以无头模式启动chrome驱动程序

package com.sdetworld.tutorials.selenium

import io.github.bonigarcia.wdm.ChromeDriverManager;
import org.openqa.selenium.chrome.ChromeDriver;

public class WebDriverBase {

  static protected WebDriver driver;

  public static void setup() {

    ChromeDriverManager.getInstance().setup();
    ChromeOptions chromeOptions = new ChromeOptions();

    chromeOptions.addArguments("--headless");
    driver = new ChromeDriver(chromeOptions);
  }

  public static void main(String[] args) {
    WebDriverBase.setup();
    driver.get("https://www.testingexcellence.com");
  }
}
复制代码

转载于:https://juejin.im/post/5bfb73d96fb9a049b78009d4

相关文章:

  • C#和Java交互相关研究
  • 以游戏化思维来做运营工作
  • Django分页、模板继承
  • Linux三剑客
  • [Bada开发]初步入口函数介绍
  • WebSocket初探
  • webpack4 一点通
  • 小米抢购神器-开放源码
  • 互联网企业数据安全体系建设
  • 超过响应缓冲区限制
  • 应用监控的选型思考
  • MyEclipse恢复被删除的文件
  • 贺建奎:愿意用自己孩子第一个尝试,研究不小心泄露,英美也有类似实验
  • 线性回归感觉会有用 临时保存,
  • 什么是UE、UI、UCD、UED?UE、UI、UCD、UED四者的区别(转)
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • ➹使用webpack配置多页面应用(MPA)
  • 2019.2.20 c++ 知识梳理
  • canvas 高仿 Apple Watch 表盘
  • git 常用命令
  • OSS Web直传 (文件图片)
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PHP面试之三:MySQL数据库
  • Python_网络编程
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 通过git安装npm私有模块
  • 网页视频流m3u8/ts视频下载
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • AI算硅基生命吗,为什么?
  • mysql面试题分组并合并列
  • #define 用法
  • $L^p$ 调和函数恒为零
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (2015)JS ES6 必知的十个 特性
  • (52)只出现一次的数字III
  • (HAL库版)freeRTOS移植STMF103
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)计算机毕业设计高校学生选课系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)nsfocus-绿盟科技笔试题目
  • (转)一些感悟
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ***通过什么方式***网吧
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .aanva
  • .htaccess 强制https 单独排除某个目录
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net 按比例显示图片的缩略图
  • .net开发时的诡异问题,button的onclick事件无效
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .NET中两种OCR方式对比
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @vue/cli 3.x+引入jQuery