自动化测试

一.Selenium

1.安装selenium

java 复制代码
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.0.0</version>
</dependency>

2.使用selenium下载浏览器驱动

以Chrome浏览器为例,可以添加隐式等待------放视元素加载过慢/没出现时自动化报错

javascript 复制代码
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");

3.通过driver对象来创建

打开浏览器

javascript 复制代码
WebDriver driver = new ChromeDriver(options);

输入URL

javascript 复制代码
driver.get();

二.元素定位

1.cssSelector

选择第几个------nth-child()

下一级------'>'

2.xpath

1.获取HTML所有页面------//*

2.获取页面指定的元素------//body中的标签名

3.获取子节点------/

4.元素匹配[@元素名='']

5.选择第几个用[](1为开始)

三.选择元素

使用cssSelector

复制代码
WebElement用于单个元素接收
javascript 复制代码
driver.findElement(By.cssSelector(""));

用List<WebElement>多个元素接收的参数

javascript 复制代码
driver.findElements(By.cssSelector(""));

使用xpath

WebElement用于单个元素接收

javascript 复制代码
driver.findElement(By.xpath(""));

用List<WebElement>多个元素接收的参数

javascript 复制代码
driver.findElements(By.xpath(""));

四.使用测试对象

点击------click()

输入------senKeys(" ")

清除------clear()

获取元素文本------getText()

获取当前页面的标题------getTitle()

获取当前页面URL------getCurrentUrl()

五.窗口切换

1.获取当前页面句柄

driver.getWindowHandle()

2.获取所有⻚⾯句柄

driver.getWindowHandles()

3.切换句柄

driver.switchTo().window(窗口句柄)

六.窗口大小切换

窗口最大化

driver.manage().window().maximize()

窗口最小化

driver.manage().window().minimize()

全屏窗口

driver.manage().window().fullscreen()

自定义窗口大小

driver.manage().window().setSize(new Dimension(长,宽))

七.屏幕截图

1.添加包

javascript 复制代码
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

2.操作

javascript 复制代码
File  file=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(file,new File("路径+文件名.格式"));

八.等待

1.强制等待

Thread.sleep()

2.隐式等待

driver.manage().timeouts().implicitlyWait(Duration.选择的时间单位());、
隐式等待作用域是整个脚本的所有元素。即只要driver对象没有被释放掉,隐式等待就⼀直⽣效

3.显示等待

javascript 复制代码
WebDriverWait foo = new WebDriverWait(driver, Duration.ofSeconds(等待时间))
foo.until(ExpectedConditions.elementToBeClickable(By.cssSelector("")));

ExpectedConditions方法
1.elementToBeClickable(By locator)------用于检查想要查找的元素是否启用
2.textToBe(Bylocator,String str)------检查元素
3.presenceOfElementLocated(Bylocator)------检查⻚⾯的 DOM 上是否存在元素
4.urlToBe(java.lang.String url)------检查当前⻚⾯的 URL 是⼀个特定的 URL

九.浏览器操作

1.打开⽹站

javascript 复制代码
driver.navigate().to("URL");
driver.get("URL");

2.前进、后退、刷新

javascript 复制代码
driver.navigate().back();后退
driver.navigate().forward();前进
driver.navigate().refresh();刷新

十.弹窗

1.切换到弹窗窗口

javascript 复制代码
Alert alert = driver.switchTo.alert()

2.确认

javascript 复制代码
alert.accept()

3.取消

javascript 复制代码
alert.dismiss()

4.输入文本消息

javascript 复制代码
alert.sendKeys("输入内容")

5.获取弹窗上的提示文本

javascript 复制代码
String getText()

十一.关闭窗口

driver.close()

相关推荐
2501_944525548 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 预算详情页面
android·开发语言·前端·javascript·flutter·ecmascript
2301_790300968 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
8 小时前
java关于内部类
java·开发语言
好好沉淀8 小时前
Java 项目中的 .idea 与 target 文件夹
java·开发语言·intellij-idea
lsx2024068 小时前
FastAPI 交互式 API 文档
开发语言
VCR__8 小时前
python第三次作业
开发语言·python
韩立学长9 小时前
【开题答辩实录分享】以《助农信息发布系统设计与实现》为例进行选题答辩实录分享
python·web
码农水水9 小时前
得物Java面试被问:消息队列的死信队列和重试机制
java·开发语言·jvm·数据结构·机器学习·面试·职场和发展
wkd_0079 小时前
【Qt | QTableWidget】QTableWidget 类的详细解析与代码实践
开发语言·qt·qtablewidget·qt5.12.12·qt表格
东东5169 小时前
高校智能排课系统 (ssm+vue)
java·开发语言