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