Java自动化测试(webdriver常用API 24)
元素基本API
click
触发当前元素的点击事件
1 | driver.get("https://www.ketangpai.com/"); |
clear
清空内容
sendKeys
- 往文本框一类元素中写入内容
- 按键操作
1 | element.sendKeys(Keys.CONTROL,"a"); // ctrl+a |
getTagName
获取元素的标签名
getAttribute
根据属性名获取元素属性
getText
获取当前元素的文本值
isDisplayed
查看元素是否显示
isEnabled
查看元素是否可用
isSelected
查看元素是否选中
webdriver常用api
get(String url)
访问指定url
getCurrentUrl
获取当前页面地址
getTitle
获取当前页面标题
getPageSource
获取当前页面源码
quit
关闭驱动对象以及所有相关的窗口
close
关闭当前窗口
navigate对象
关于浏览器的基本功能操作,大部分由navigate
对象提供
1 | Navigation navigation = driver.navigation(); |
to
访问指定的url地址
1 | navigation.to(url); |
refresh
刷新当前页面
1 | navigation.refresh(); |
back
浏览器回退操作
1 | navigation.back(); |
forward
浏览器前进操作
1 | navigation.forward(); |
windows基本操作
关于窗口的设置,基本都是由windows对象提供的
1 | Window windows = driver.manage().window(); |
maximize
最大化
getPostition
窗口位置
getSize
窗口大小
setPosition
设置位置
setSize
设置窗口大小
1 | WebDriver.Window window = driver.manage().window(); |
等待
硬性等待
单位毫秒
1 | Thread.sleep() |
优点:使用简单
缺点:容易造成时间浪费
隐式等待
在设置的超时时间范围内不断查找元素,知道找到元素或者超时
1 | driver.manage().timeouts().implicitlyWait(long time,TimeUnit unit) |
优点:相对灵活
缺点:设置是针对全局的,在WebDriver
实例整个生命周期有效,但并不是所有的元素都需要等待
不能适用更复杂的情况如:元素可点击,元素可见
1 | // 隐式等待3秒 |
显示等待
自定义一段代码,用来等待某个条件发生后再继续执行后续代码(如:找到元素,元素可点击,元素已显示)
1 | WebDriverWait wait = new WebDriverWait(driver, 10); |
优点:每隔一段时间扫描一次页面,检查元素是否满足等待结果条件,比如查找元素,则检查元素是存在,不存在则继续等待,直到找到或超时。
该方法不是全局设置,特定需要等待的元素可以这样设置
- presenceOfElementLocated:页面元素在页面中存在
- visibilityOfElementLocated:页面元素在页面存在并且可见
- elementToBeClickable:页面元素是否在页面上可用和可被点击
- frameToBeAvailableAndSwitchTolt:切换到iframe中,返回boolean类型
- urlContains:当前页面的url包含特定文本
- titleContains:当前页面title包含特定文本