selenium必须对一些对象进行操作才能完成一些功能,比如按键的点击、文本框的输入等等,在这里就简单的介绍一下selenium中的层级定位和对测试对象的操作。
工具/原料
selenium,eclipse
层级定位
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 点击对象 .se艘绒庳焰ndKeys在对象上模拟按键输入 .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(); 将元素值进行清除操作。