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

【Kotlin基于selenium实现自动化测试】初识selenium以及搭建项目基本骨架(1)

导读大纲

    • 1.1 Java: Selenium 首选语言
    • 1.2 配置一个强大的开发环境

1.1 Java: Selenium 首选语言

  1. Java 是开发人员和测试人员进行自动化 Web 测试的首选

    • Java 和 Selenium 之间的协同作用受到各种因素的驱动,从而提高它们的有效性
  2. 为什么Java经常被认为是Selenium的首选语言

    • 广泛流行和采用/庞大的用户群
      1. Java 是使用最广泛的编程语言之一
      2. 这种广泛采用意味着大量开发人员和测试人员都熟悉 Java
        • 从而为 Selenium 项目中的协作和知识共享提供便利
    • 面向对象编程(OOP)/可复用性和可维护性
      1. Java 的面向对象特性与 Selenium 的架构非常吻合
      2. 封装、继承和多态性等面向对象编程原则
        • 可以创建可重用和可维护的测试脚本,这对测试自动化至关重要
    • 强大的标准库/丰富的 API 集
      1. Java 提供一套全面的标准库,可让 Selenium 自动化脚本受益匪浅
      2. 这些库提供处理文件系统、数据库、网络等的功能
        • 从而增强 Selenium 测试的能力
    • 跨平台兼容性/平台独立性
      1. Java 的平台独立性是其一大优势
      2. 用 Java 编写的测试脚本无需修改即可在不同的操作系统上执行
        • 与 Selenium 的跨浏览器和跨平台测试能力相一致
    • 强大的社区和生态系统/广泛的资源和支持
      1. 强大的 Java 社区提供广泛的支持,包括论坛、教程和文档
      2. 这使得使用 Selenium 和 Java 的人员更容易排除故障和学习
    • 与其他工具集成/与测试框架兼容
      1. Java 与 JUnit 和 TestNG 等流行的测试框架集成良好
      2. Selenium 通常使用这些框架
        • 组织测试、生成报告管理测试用例和套件
    • 成熟的开发工具/先进的集成开发环境
      1. Java 有强大的集成开发环境(IDE)支持,如 Eclipse 和 IDEA
      2. 这些集成开发环境提供高级编码功能、调试和测试功能
        • 有利于开发和维护 Selenium 测试脚本
    • 稳定性和可靠性/久经考验的记录
      1. Java 在各个领域的稳定性和可靠性由来已久
      2. 这种稳定性在测试自动化中至关重要
        • 因为测试脚本的一致和可靠执行关键所在
    • 强大的自动化生态系统/丰富的库和框架
      1. Java 的生态系统包括众多可增强和简化 Selenium 自动化的库和框架
      2. 这些工具可以大大减少编写和维护测试脚本的工作量和复杂性
  3. Java 的面向对象特性、广泛的使用、强大的库支持、平台独立性和强大的生态系统

    • 使其成为 Selenium 的理想语言
  4. Java符合基于 Selenium 的自动化技术要求

    • 开发复杂、高效的测试自动化套件提供稳定、可扩展的环境

1.2 配置一个强大的开发环境

  1. 设置和掌握Java、IDEA 和Selenium WebDriver的集成技术

    • 重点是配置一个强大的开发环境
  2. 首先,需要安装 Java,为测试脚本奠定强大的编程语言基础

    • 选择最适合测试项目的 JDK 版本
      • Oracle JDK
      • 选择并点击与您的操作系统(Windows、macOS 或 Linux)相对应的下载链接
      • 接受 Oracle Java SE 的 Oracle 技术网络许可协议.
      • 点击可执行文件的下载链接
        1. 无论是 Windows 的 .exe、macOS 的 .dmg 还是 Linux 的 .tar.gz.
    • 运行安装程序
      • Windows
        1. 双击下载的 .exe 文件,然后按照提示进行安装
        2. 您可以选择安装 JDK 的目录
      • macOS(手动安装)
        1. 打开 .dmg 文件并按照说明操作
        2. 通常需要将 JDK 拖入"Applications"文件夹
      • Linux
        1. 通过图形文件管理器或使用 tar -xzf [filename] 命令行
          • 将 .tar.gz 文件解压缩到所需位置
    • 设置环境变量
      1. 在 Windows 中, 执行以下操作
        • 在 "系统变量"中,单击"新建"创建一个新的 JAVA_HOME 变量
          1. 并将其值设置为 JDK 安装路径
        • 在 "系统变量"中找到"Path"变量
          1. 然后单击"编辑"添加一个新条目,内容为 %JAVA_HOME%\bin
      2. 在 macOS 和 Linux 中,请执行以下操作.
        • 打开终端,键入 vi ~/.bashrc 或 vim ~/.bashrc
          1. 添加一行"export JAVA_HOME=/usr/lib/jvm/jdk-11"
        • 将 Java 二进制目录添加到 PATH 变量中
          1. export PATH=$JAVA_HOME/bin:$PATH
          2. 这一步可确保从命令行访问 Java 二进制文件
        • 保存文件并重新加载你的配置文件
          1. 例如,运行 source ~/.bashrc
    • 检查 Java 版本以验证安装
      • 在终端中键入 javac --version 并按 Enter
        title
  3. 接着, 安装 IDEA 集成开发工具

    • IDEA
  4. 然后安装 Selenium

    • 下载 Selenium WebDriver Java 客户端
    • 在maven中央仓库搜索依赖包
      title
    • 下载对应浏览器的Selenium WebDriver
      1. Google Chrome
      2. Mozilla Firefox
      3. Microsoft edge
      4. Apple Safari
      5. Opera
      6. Internet Eexplorer
    • 每个 WebDriver 都允许Selenium 与相应的浏览器进行交互
      1. 从而实现自动化测试
  5. 在 IDEA 中创建新 Kotlin 项目
    title

  6. 将 Selenium JAR 添加到项目中(手动添加Selenium依赖包)

    • 将下载的 ZIP 文件解压缩到计算机上的文件夹中
    • 右键项目目录, 打开"Project Structure"
      title
    • 选择"Libraries"–>“点击+”–>“选择Java”–>“选择刚才解压缩的目录”
      title
  7. 通过 Gradle 配置来添加 Selenium 依赖

    • 使用该方式则无需手动下载 Selenium JAR 包
// ================== build.gradle.kts
dependencies {implementation("org.seleniumhq.selenium:selenium-chrome-driver:4.25.0")implementation("org.seleniumhq.selenium:selenium-java:4.25.0")testImplementation(kotlin("test"))
}
  1. 创建一个简单的测试脚本来验证配置是否正确
    • 右键kotlin目录, 创建一个包"kt.selenium"
      title
    • 在"kt.selenium"包下创建一个"Main.kt"的kotlin文件
      title
package kt.selenium
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
fun main() {// 初始化一个 ChromeDriver 实例val driver: WebDriver = ChromeDriver()// 在浏览器中打开百度driver.get("https://www.baidu.com")// 关闭浏览器driver.quit()
}

相关文章:

【Kotlin基于selenium实现自动化测试】初识selenium以及搭建项目基本骨架(1)

导读大纲 1.1 Java: Selenium 首选语言1.2 配置一个强大的开发环境 1.1 Java: Selenium 首选语言 Java 是开发人员和测试人员进行自动化 Web 测试的首选 Java 和 Selenium 之间的协同作用受到各种因素的驱动,从而提高它们的有效性 为什么Java经常被认为是Selenium的首选语言 广…...

汽车追尾为什么是后车的责任?

简单点说:因为人后面没有长眼睛。 结论 在汽车追尾事故中,通常情况下后车被认为是责任方的原因在于交通法规对驾驶安全标准的约定和实践中的责任识别原则。虽然追尾事故常见地被归责于后车,但具体判断并不是绝对的,仍需综合多种…...

[运维]4.bookinfo无法部署的问题

为了拉取镜像,搭建了阿里云镜像仓库,教程见:K8S中基于NFS-Subdir-External-Provisioner存储组件实现的StorageClass-CSDN博客 但是bookinfo的ratings和productpage无法运行,部署后显示crashLoopBackOff [rootmaster ~]# kubectl…...

ACT调试pycharm报错

在运行ACT 代码时,根据官方readme使用命令行需要在wandb选择的时候输入3 但是,使用pycharm运行的时候会报错 wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key[your_api_key]) 网上搜索都是说要注册什么key&#xf…...

记一次控件提升后,运行却不显示的Bug

.h文件 #ifndef VOLUMETOOLBTN_H #define VOLUMETOOLBTN_H#include <QToolButton> #include <memory>class VolumeToolBtn : public QToolButton { Q_OBJECTpublic:explicit VolumeToolBtn(QWidget *parent nullptr);~VolumeToolBtn() override;void initUi(); p…...

关于深度学习torch的环境配置问题

已经下好了torch在虚拟环境中&#xff0c;结果在ipynb文件中无法运行 后来在终端直接用python语句编译 发现没有问题 在编辑测试py文件 发现runcode有问题 原来是插件默认base环境 具体操作参考VS Code插件Code Runner使用python虚拟环境_coderunner怎么在虚拟环境中使用-CSD…...

Linux工具的使用——yum和vim的理解和使用

目录 linux工具的使用1.linux软件包管理器yum1.1yum的背景了解关于yum的拓展 1.2yum的使用 2.Linux编辑器-vim使用2.1vim的基本概念2.2vim的基本操作2.3命令模式命令集2.3.1关于光标的命令&#xff1a;2.3.2关于复制粘贴的命令2.3.3关于删除的命令2.3.4关于文本编辑的命令 2.4插…...

websockets库使用(基于Python)

主要参考资料&#xff1a; 【Python】websockets库的介绍及用法: https://blog.csdn.net/qq_53871375/article/details/135920231 python模块websockets&#xff0c;浏览器与服务器之间的双向通信: https://blog.csdn.net/randy521520/article/details/134752051 目录 websocke…...

Electron 主进程与渲染进程、预加载preload.js

在 Electron 中&#xff0c;主要控制两类进程&#xff1a; 主进程 、 渲染进程 。 Electron 应⽤的结构如下图&#xff1a; 如果需要更深入的了解electron进程&#xff0c;可以访问官网 流程模型 文档。 主进程 每个 Electron 应用都有一个单一的主进程&#xff0c;作为应用…...

鸿蒙harmonyos next纯flutter开发环境搭建

公司app是用纯flutter开发的&#xff0c;目前支持android和iOS&#xff0c;后续估计也会支持鸿蒙harmonyos。目前谷歌flutter并没有支持咱们国产手机操作系统鸿蒙harmonyos&#xff0c;于是乎国内有个叫OpenHarmony-SIG的组织&#xff0c;去做了鸿蒙harmonyos适配flutter开发的…...

【学习资源】人在环路的机器学习

说明&#xff1a;本文图片和内容来源 Human-in-the-Loop Machine Learning Human-in-the-Loop Machine Learning Active learning and annotation for human-centered AI by Robert (Munro) Monarch, June 2021 介绍Human-in-the-Loop的目标&#xff0c;学习过程&#xff0c…...

计算机毕业设计 基于Python的热门微博数据可视化分析系统的设计与实现 Python+Django+Vue 可视化大屏 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

031集——文本文件按空格分行——C#学习笔记

如下图&#xff0c;读取每行文本&#xff0c;每行文本再按空格分开读取一个字符串&#xff0c;输出到另一个文本&#xff1a; CAD环境下&#xff0c;代码如下&#xff1a; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; using System; using Sys…...

LabVIEW 成绩统计系统

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

SpringBoot技术栈:构建高效古典舞交流平台

第二章 相关技术介绍 2.1Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xf…...

Docker 容器日志记录与管理:日志输出、轮转与配置实践

Docker 容器化应用的日志管理是运维中的重要环节。容器默认会将标准输出(stdout)和标准错误(stderr)记录到日志文件中,但这些日志文件如果不加管理,可能会无限制地增长,最终导致磁盘空间耗尽。因此,了解如何规范化容器日志管理、配置日志轮转策略以及合理存储位置至关重…...

Django学习笔记一:MVT的示例

Django的MVT&#xff08;Model-View-Template&#xff09;架构是一种将应用程序的不同部分分离的方法&#xff0c;旨在提高代码的可维护性和可扩展性。MVT将应用分解为三个主要部分&#xff1a;Model&#xff08;模型&#xff09;、View&#xff08;视图&#xff09;和Template…...

集合框架01:集合的概念、Collection体系、Collection接口

1.集合的概念 集合是对象的容器&#xff0c;定义了多个对象进行操作的常用方法。可实现数组的功能。 集合和数组的区别&#xff1a; 1.数组长度固定&#xff0c;集合长度不固定&#xff1b; 2.数组可以存储基本类型和引用类型&#xff0c;集合只能存储引用类型&#xff1b; …...

shadcn-vue 快速开始

介绍 基于 Radix Vue 和 Tailwind CSS 构建的可重复使用的组件 一个由社区主导的非官方 Vue 版本的 shadcn/ui。虽然我们与 shadcn 没有正式的合作或联系&#xff0c;但在开始这个项目之前得到了作者本人的同意。创建这个项目的原因是 Vue 生态系统中缺乏类似的项目&#xff…...

智慧管控平台技术解决方案

1. 智慧管控平台概述 智慧管控平台采用先进的AI技术&#xff0c;围绕一个中心和四大应用构建&#xff0c;旨在打造一个智能、共享、高效的智慧运营管理环境&#xff0c;实现绿色节能和业务创新。 2. 平台架构设计 系统整体架构设计包括统一门户管理、IOT平台、大数据、视频云…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space

问题&#xff1a;IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案&#xff1a;将编译的堆内存增加一点 位置&#xff1a;设置setting-》构建菜单build-》编译器Complier...