元素基本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包含特定文本