首页 > 编程语言 >java+selenium+testNG自动化测试实践

java+selenium+testNG自动化测试实践

时间:2023-12-06 23:33:08浏览次数:45  
标签:java String selenium driver testNG WebElement findElement org import

java+selenium+testNG自动化测试实践

 

第一步,本地搭建web服务

我使用开源JPRESS项目在本地搭建web服务,用于测试。关于JPress网上搜一下就可以下载源码,根据指导文档搭建web服务即可。

 

 

 

 

 

第二步 注册云码,用于打码解析Jpress后台登录界面验证码解析,扫微信即可享受500免费积分使用

 

 

 

第三部 搭建本地测试项目框架

Java + Selenium + TestNG + Rest Assured

gitee: https://gitee.com/the-wind-of-that-year/jpress_web-ui_-test.git

 

 

 

登录测试用例

 

 

 

package jpress;

import com.sun.org.slf4j.internal.Logger;
import com.sun.org.slf4j.internal.LoggerFactory;
import demo.SetupEnvironment;
import org.openqa.selenium.*;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import utility.YunMaServer;

import java.io.IOException;

public class TestLogin {
    private Logger logger = LoggerFactory.getLogger(TestLogin.class);
    private WebDriver driver;

    @BeforeClass
    public void setup(){
        driver = SetupEnvironment.getDriver();
        driver.manage().window().maximize();
    }

    @Test
    @Parameters({"userName", "passWord"})
    public void loginTest(String userName, String passWord) throws IOException {
        driver.get("http://localhost:8080/admin/login");
        WebElement user = driver.findElement(By.name("user"));
        user.clear();
        user.sendKeys(userName);
        WebElement pwd = driver.findElement(By.name("pwd"));
        pwd.clear();
        pwd.sendKeys(passWord);
        WebElement captcha = driver.findElement(By.id("captcha"));
        WebElement element = driver.findElement(By.id("captcha-img"));
        Rectangle rect = element.getRect();
        String screenshotAs = element.getScreenshotAs(OutputType.BASE64);
        logger.warn(screenshotAs);
        String imageCode = YunMaServer.getImageCode(screenshotAs);
        captcha.clear();
        captcha.sendKeys(imageCode);
        driver.findElement(By.cssSelector("button.btn-primary")).click();
        WebElement element1 = driver.findElement(By.cssSelector(".main-header li.dropdown a.nav-link"));
        String name = element1.getText();
        Assert.assertEquals(name, userName);
    }


}

 

 

 

 



标签:java,String,selenium,driver,testNG,WebElement,findElement,org,import
From: https://www.cnblogs.com/s0306259/p/17880783.html

相关文章

  • 如何使用 Java 代码实现设置 Excel 单元格的格式?
    要使用Java代码设置Excel单元格的格式,您可以使用ApachePOI库。以下是一个示例代码,演示如何设置Excel单元格的格式:importorg.apache.poi.ss.usermodel.*;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importjava.io.FileOutputStream;importjava.io.IOException;pu......
  • Java之Calender类的详细解析
     Calendar类3.1概述java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。有两种方式可以获取GregorianCalendar对象:直接创建GregorianCalendar对象;通过Calendar的静态方法getInstance()方法......
  • java Date JDK8
    packagenet.elaina.ZoneId;importjava.time.Instant;importjava.time.ZoneId;importjava.time.ZonedDateTime;publicclassTest02{publicstaticvoidmain(String[]args){/*staticInstantnow()获取当前时间的Instant对象(......
  • Java 操作 MySQL 数据库
    Java入门-获取MySQL数据java代码/***@Author编程无忧*@Date2022/1/1313:17*@Desc*/publicclassmysqlTest{@TestpublicvoidgetMysqlCon(){//声明Connection对象Connectioncon;//驱动程序名Stringdriver=......
  • 全球超 250 万 Java 开发者使用 Visual Studio Code
    全球超250万Java开发者使用VisualStudioCode来源:OSCHINA编辑: 局2023-12-0611:28:00 6NickZhu是负责 VSCodeJava扩展的产品总监,昨天他在官方博客宣布,VisualStudioCode的活跃Java开发者已超过250万。来源:https://devblogs.microsoft.com......
  • Java反序列化 CC7链
    参考链接https://blog.csdn.net/qq_35733751/article/details/119862728https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections7.javahttps://y0n3er.github.io/undefined/45911.html环境搭建CommonsCollections3.2.1JD......
  • java反序列化 ROME链
    环境搭建jdk8u181<dependencies><dependency><groupId>rome</groupId><artifactId>rome</artifactId><version>1.0</version></dependency></dependencies>利用链分析ROME反序列......
  • Java二次反序列化
    前言题目hookresolveClass存在入口类黑名单,就可以用二次反序列化绕过,例如巅峰极客的babyurl。本质是,A类的a方法,内部可以实现反序列化,并且要反序列化的对象我们可控;在B入口类被禁用的情况下,通过把要反序列化的恶意对象b放入A类,用没被禁用的入口类C的readObject,去调用A类的a方法......
  • Java反序列化 CC4链
    参考链接https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections4.javahttps://www.bilibili.com/video/BV1NQ4y1q7EU环境搭建CommonCollections4jdk8u65利用链分析看了下ysoserial的exp,其实就是CC3的代码执行+Common.Co......
  • Java反序列化 CC2链
    参考链接https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections2.java环境搭建CommonCollections4jdk8u65利用链分析这条链子是利用invokerTransformer触发templates.newTransformer(),进而触发TemplatesImpl代码执行Gadg......