自动化测试

一.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()

相关推荐
一木 之林6 小时前
三.C++ 内存管理(进阶)(二)
开发语言·arm开发·c++
吴声子夜歌6 小时前
Java——类、对象及方法(一)
java·开发语言
心易行者6 小时前
从零搭建完整Web应用:7步走完全流程,配合web应用托管零门槛上线
人工智能·python·ai编程
阿里嘎多学长6 小时前
2026-08-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管
小柯南敲键盘7 小时前
跨境电商图片翻译工具,批量处理视频字幕与抠图
人工智能·python·音视频
এ慕ོ冬℘゜7 小时前
JavaScript学习心得:从只会语法,到真正会写业务逻辑
开发语言·javascript·ecmascript
2601_966949657 小时前
五档盘口数据对量化交易有什么价值?从信号判断到策略风险的完整分析
开发语言·人工智能·python·数据分析·量化·股票数据·quantdash
cxhello7 小时前
消费者活着、心跳正常、日志干净,但它七天没拉过一条消息
python·kafka
砚底藏山河7 小时前
【量化纯GET实战 #11】移动均线 MA:5 日 20 日 60 日怎么算怎么用
java·python·金融·maven
小吴学不废Java7 小时前
Python 基础语法
开发语言·python