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