WebDriver的几种定位方式介绍

发表于:2016-6-08 13:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:honzhang    来源:51Testing软件测试网采编

  1.通过ID查找元素
  通过页面元素的ID来查找元素是最为推荐的方式。W3C标准推荐开发人员为每一个页面元素都提供一个独一无二的ID元素,因此开发人员应避免单个页面上的所有元素存在ID不唯一的情况和元素ID是自动生成的情况。
  页面元素的ID被作为首选的识别属性,因为这是最快的识别策略。
  driver.findElement(By.id("Title")).sendKeys("test content");//如果需要,可用WebElement先存储起来, 然后再进行相应操作。
  2.通过Name查找元素
  WebElement searchBox = driver.findElement(By.name("wd"));
  searchBox.sendKeys("java");
  searchBox.submit();//提交
  3.通过ClassName查找元素
  4.通过TagName查找元素
  与前述几个方式略有不同。其原因是同一个页面上具有相同TagName的元素可能一个都没,也可能有多个。因此建议在使用TagName为查找元素的条件时,使用findElements()来替代findElement()函数。
  List<WebElement> scriptList = driver.findElements(By.tagName("script"));
  System.out.println("There are "+scriptList.size()+" scripts on Xiaomi's page!");
  5.通过LinkText查找元素
  eg.<a href = "www.baidu.com">提交</a>
  WebElement aboutGenExam = driver.findElement(By.linkText("提交"));
  aboutGenExam.click();
  6.通过PartialLinkText查找元素
  spacer.gif
  如上,百度页面下方有“关于百度”的链接地址,其HTML代码如上,可通过anchor上的部分文本信息来查找该元素并进行操作, 如通过“关于”二字来查找该链接地址。
  driver.get("www.baidu.com");
  WebElement aboutLink = driver.findElement(By.partialLinkText("关于"));
  aboutLink.click();
  findElement()方法只会返回页面上第一个满足partialLinkText为“关于”的元素。如果希望找到页面上所有包含部分文本为"关于"的链接元素,则使用findElements()方法来替代。
  7.使用CSS选择器查找元素
  eg.需根据实际情况来判断。
  WebElement about = driver.findElement(By.cssSelector("#lsb-id"));
  aboutLink.click();
  8.通过Xpath查找元素
  xpath很强悍,但定位性能不是很好,所以还是尽量少用。如果确实少数元素不好定位,可以选择xpath或cssSelector。
  9.通过JQuery查找元素(p34-39)
  JQuery允许开发人员通过简单的步骤快速识别页面上的元素。在使用JQuery简化Selenium查找元素之前 ,需要首先确认页面是否已经加载了JQuery库。在这里分情况进行阐述,一种情况是页面本身已经加载了JQuery库,另一种情况是页面本身并没加载JQuery库。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号