selenium学习笔记——定位元素

  上一篇介绍了自己对selenium的理解以及测试环境的搭建~这篇主要介绍一下如何定位我们的页面元素。我们以火狐浏览器为例,其中火狐浏览器的版本采用较低的35.0.1版本,大家可以从网站上下载相应的版本。

  我们在对页面中元素进行定位之前,要先对浏览器进行操作:

 1 public class SearchTest {
 2     public static void main(String[] args) {
 3         // 1、打开浏览器——创建浏览器驱动
 4        WebDriver driver = new FirefoxDriver();
 5         // 2、智能等待10秒
 6       driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 7         // 3、窗口最大化
 8       driver.manage().window().maximize();
 9         // 4、打开网页
10         driver.get("www.baidu.com");
11         // 5、定位界面元素,并对元素进行操作——输入内容sendKeys(),点击按钮click()
12       driver.findElement(By.className("s_ipt")).sendKeys("李宗盛");
13       driver.findElement(By.id("su")).click();
14         // 6、关闭浏览器
15         driver.close();
16         // 7、关闭驱动
17         driver.quit();
18     }
19 }

其中,第五步的定位元素有八种方式:

  1. className:通过元素的class定位,findElement()方法表示查找元素,By.className()表示通过类名来定位界面上的输入框,sendKeys()表示向输入框中填入“李宗盛”     driver.findElement(By.className("spread")).sendKeys("李宗盛");
  2. id:driver.findElement(By.id("username")).sendKeys("admin");
  3. linkText:driver.findElement(By.linkText("淘宝网")).click();
  4. partialLinkText:driver.findElement(By.partialLinkText("淘")).click(); 当连接文本比较长,只写部分也可以
  5. name:driver.findElement(By.name("username")).sendKeys("admin");
  6. tagName:driver.findElement(By.tagName("a")).click(); 当页面中的标签名唯一才可以使用
  7. cssSelector:driver.findElement(By.cssSelector("input[type='button']")).click(); 定位到元素后,直接右键——选择css,复制css路径
  8. xpath:driver.findElement(By.xpath("//input[@value='查询']")).click();  一般来说,其他方式定位不到的时候,就可以用这种方式定位;但是如果所有页面元素都用这种方式定位,那么代码的可读性就会比较差

这是元素的定位方式,代码中其他部分,是公共部分。我们类比较多的时候,就可以把这部分公共代码抽取出来。

下一部分,介绍一些页面的高级操作

原文地址:https://www.cnblogs.com/starstarstar/p/7587349.html