[软件自动化测试] selenium java环境配置

简介: 介绍了包括选择Gradle构建,关闭Gradle Wrapper的默认下载,修改`gradle-wrapper.properties`以使用腾讯云镜像,以及更新`build.gradle`文件添加国内仓库和Selenium依赖。在测试驱动部分,创建了一个简单的JUnit测试用例,展示了如何初始化Edge浏览器并访问网站。运行测试时可能出现关于CDP版本不匹配的警告,可以通过升级Selenium依赖中的CDP版本来解决。推荐根据[Selenium库网页](https://search.maven.org/search?q=g:org.seleniumhq.selenium)提供的版本信息进行升级

前提

  1. 安装好java环境
  2. 有idea

创建项目

1. 选择 gradle groovy
image.png
2.首先关闭gradle wrapper的下载(网速好可以直接下载)
image.png

配置 gradle 环境

i. 如果下载gradle wrapper超时,可以修改为国内镜像

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
# 国内镜像,加快下载
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

ii. build.gradle 文件替换成如下内容

plugins {
    id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'


compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'

// 这边全部换成国内仓库
repositories {
    mavenLocal()
    maven { url 'https://maven.aliyun.com/repository/public/' }
    maven { url 'https://maven.aliyun.com/repository/spring/'}
    maven { url 'https://maven.aliyun.com/repository/google/'}
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin/'}
    maven { url 'https://maven.aliyun.com/repository/spring-plugin/'}
    maven { url 'https://maven.aliyun.com/repository/grails-core/'}
    maven { url 'https://maven.aliyun.com/repository/apache-snapshots/'}
    mavenCentral()
}

dependencies {
    testImplementation 'junit:junit:4.13.2'
    //火狐 或者 Edge chrome 都可以
    // 4.12版本可能会不兼容cdp 117(就是最新的edge浏览器),报warning但是没啥影响
    // 截至2024.4.13号最新版本为 4.19.1
    // 如果版本无法驱动可以自己升级,理论上不会有啥影响

    implementation 'org.seleniumhq.selenium:selenium-edge-driver:4.12.1'
    //implementation 'org.seleniumhq.selenium:selenium-firefox-driver:4.12.1'
    //implementation 'org.seleniumhq.selenium:selenium-chrome-driver:4.12.1'

    implementation 'org.seleniumhq.selenium:selenium-remote-driver:4.12.1'
    implementation 'org.seleniumhq.selenium:selenium-support:4.12.1'
    implementation 'org.seleniumhq.selenium:selenium-remote-driver:4.12.1'
}

iii. 等待依赖下载完成,即可开始编码

测试驱动

i. 在 src/test/java 测试类
image.png

ii. Case1中填入如下的代码

import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;

public class Case1 {
   
   
    // 测试注解
    @Test
    public void test1() throws InterruptedException {
   
   
        // 初始化驱动
        WebDriver webDriver = new EdgeDriver();
        // 打开网页
        webDriver.get("https://www.bing.com");
        // 睡觉1.5s
        Thread.sleep(1500L);
        // 推出网页
        webDriver.quit();
    }
}

iii. 运行测试代码
image.png

iv. 不难发现控制台有警告

警告: Unable to find CDP implementation matching 123
四月 13, 2024 10:43:20 下午 org.openqa.selenium.chromium.ChromiumDriver lambda$new$5
警告: Unable to find version of CDP to use for 123.0.2420.97. You may need to include a dependency on a specific version of the CDP using something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.12.1` where the version ("v86") matches the version of the chromium-based browser you're using and the version number of the artifact is the same as Selenium's.
  • 这时你可以选择升级gradle中填写的版本

selenium库网页

  1. 可以按照这个网站提供的版本对应升级(修改build.gradle中的版本)
    image.png
目录
相关文章
|
1天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
【5月更文挑战第12天】本文介绍了WebDriver中用于判断元素状态的三个方法:`isEnabled()`、`isSelected()`和`isDisplayed()`。`isSelected()`检查元素是否被选中,通常用于勾选框。`isDisplayed()`则用来判断元素是否在页面上可见。`isEnabled()`方法确定元素是否可操作,例如是否能点击或输入内容。
11 1
|
2天前
|
存储 JavaScript Java
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
【5月更文挑战第11天】WebDriver 的 `isDisplayed()` 方法用于检查页面元素是否可见,如果元素存在于DOM中且可视,返回`true`,否则返回`false`。在自动化测试中,这个方法常用于验证元素是否真正显示在页面上。示例代码展示了如何使用 `isDisplayed()` 判断百度登录页面的特定错误提示文字是否出现。
12 1
|
2天前
|
机器学习/深度学习 Java 数据挖掘
selenium的配置与基本使用(1),2024年最新网易Python面试必问
selenium的配置与基本使用(1),2024年最新网易Python面试必问
|
3天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
14 2
|
4天前
|
敏捷开发 测试技术 持续交付
深入理解自动化测试框架:以Selenium为例
【5月更文挑战第16天】 随着软件行业的迅猛发展,质量保障变得愈加重要。自动化测试作为确保软件质量的重要环节,其效率和可靠性受到了广泛关注。本文旨在深入探讨自动化测试框架的构建与优化,特别是以Selenium框架为例,分析其在实际应用中的优势、常见问题以及解决方案。通过具体案例分析,揭示如何提高自动化测试的稳定性和灵活性,从而更好地服务于敏捷开发和持续集成流程。
20 5
|
5天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
32 10
|
4天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
11 0
|
5天前
|
前端开发 Java 测试技术
selenium+python自动化测试--登录
selenium+python自动化测试--登录
13 2
|
5天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
16 2
|
5天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
14 1