天天看点

Java自动化测试(webdriver常用API 24)

元素基本API

click

触发当前元素的点击事件

driver.get("https://www.ketangpai.com/");
WebElement element = driver.findElement(By.xpath("//a[text()='教师培训']"));
element.click();
           

复制

clear

清空内容

sendKeys

  1. 往文本框一类元素中写入内容
  2. 按键操作
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包含特定文本