selenium中的层级定位和操作测试对象
1、 层级定位:自己找一个简单的层级定位html页,该页面中可以包括层级元素<ul><li>
2、 link1就是一个<a>标签 下面的元素就是<li>展示的内容,实现从父级元素到子级元素的代码如下:
dr.findElement(By.linkText("link1")).click();//此处实现的是触发link1
(new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d){
return d.findElement(By.id("dropdown1")).isDisplayed();//此处是判断是否存在id为dropdown1的元素,存在返回true
}
});
3、//满足上面的条件之后继续往下运行,通过多次利用findElement查找子元素
WebElement menu=dr.findElement(By.id("dropdown1")).findElement(By.linkText("Geneva"));
(new Actions(dr)).moveToElement(menu).perform(); //是模拟把鼠标移动到某个具体的测试对象上。
1、操作测试对象一般有下面几种:
.click 点击对象 .sendKeys在对象上模拟按键输入 .clear 清除对象的内容
// click
dr.findElement(By.linkText("link")).click();
Thread.sleep(1000);
通过linkText查找到该元素,由于该元素是一个a标签,所以它可以被触发。
Thread是设置线程等待时间,这样可以实现等待页面的加载,保证在接下来查找的过程中元素没有被加载进来。
2、// sendKeys
WebElement element = dr.findElement(By.name("q"));
element.sendKeys("hello");
Thread.sleep(1000);
根据元素name找到该元素,向该元素发送内容,其实也就是向文本框中输入信息,之后就可以像页面发送自己输入的内容信息
// clear
element.clear();
将元素值进行清除操作。