多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Web接口自动化元素定位之高阶用法

更新时间:2021-10-12 01:49:57 作者:admin 浏览:409

Web接口自动化元素定位之高阶用法

  随着互联网的快速发展,越来越多的测试人员遇到上述所说的问题。如何实现既提高测试效率和覆盖率,又节约测试成本,是每一个企业追求的目标。为了解决上述的问题,越来越多的公司开始加入自动化测试。现在小编和大家分享下web自动化中必须知道的一些高阶用法。

  一、常用方法

  1.通过class属性定位

  driver.findElement(By.className("spread")).sendKeys("你好");

  2.通过id属性定位

  driver.findElement(By.id("username")).sendKeys("你好");

  3.通过name属性定位

  driver.findElement(By.name("username")).sendKeys("你好");

  4.通过link属性定位

  driver.findElement(By.linkText("商城")).click();

  5.通过partialLink定位

  driver.findElement(By.partialLinkText("商")).click();

  //此方法主要在link文本特别长的时候使用

  6.通过标签tagname定位

  driver.findElement(By.tagName("a")).click();

  7.通过css定位

  driver.findElement(By.cssSelector("input[type='button']")).click();

  8.通过xapth定位

  driver.findElement(By.xpath("/html/body/div[1]/input[2]")).click();

  //通过xpath绝对路径的方式定位

  driver.findElement(By.xpath("//input[@value='查询']")).click();

  //通过相对路径的方式定位

  driver.findElement(By.xpath("//a[text()='百度一下']")).click();

  //相对路径方式,元素是可点击的链接文字

  上面列举的是网页中常用的元素定位方法。那么遇到一些界面跳转,有下拉框,界面有多个frame,有非网页弹窗,常用方法又无法定位的情况该如何解决呢?下面就给大家介绍下如何解决这些定位不到的方法。

Web接口自动化元素定位之高阶用法

  二、高阶方法

  1.页面跳转,光标还留在原界面,新界面元素定位不到。

  方式一:不关闭原窗口

  String old = driver.getWindowHandle();

  driver.getWindowHandle()://获取旧窗口句柄

  for (String i : driver.getWindowHandles()) {

  driver.getWindowHandles()://获取所有窗口的句柄

  if (!i.equals(old)) {

  driver.switchTo().window(i);

  break; }//对句柄进行判断,如果是新窗口,则切换光标

  }

  方式二:关闭原窗口:推荐使用

  String old = driver.getWindowHandle();

  driver.getWindowHandle()://获取旧窗口句柄

  for (String i : driver.getWindowHandles()) {

  driver.getWindowHandles()://获取所有窗口的句柄

  if (i.equals(old)) {

  driver.close();

  } else {

  driver.switchTo().window(i);

  break;

  }

  }

  2.下拉框中的内容定位不到

  Select s = new Select(driver.findElement(By.name("fruit")));//定位下拉框

  s.selectByIndex(1);// 通过索引/下标获取下拉列表中的值

  s.selectByValue("lizhi");// 通过value值获取下拉列表中的值

  s.selectByVisibleText("猕猴桃");// 通过界面可见文本获取下拉列表中的值

  3.同一个页面,具有多个frame,frame中的元素定位不到

  以界面具有3个并列frame的情况进行举例:

  步骤1:切换frame,进入左侧页面,再输入内容

  driver.switchTo().frame("leftframe");

  driver.findElement(By.id("left")).sendKeys("范冰冰");

  步骤2:返回默认状态

  driver.switchTo().defaultContent();

  步骤3:切换frame进入中间页面,再输入内容

  driver.switchTo().frame("middleframe");

  driver.findElement(By.id("middle")).sendKeys("刘亦菲");

  4.点击某个按钮后出现非网页弹窗无法定位

  driver.findElement(By.id("btnConfirm")).click();//定位按钮并进行点击的操作

  driver.switchTo().alert().accept();// 点击确定,accept:表示接受、同意的意思

  driver.switchTo().alert().dismiss();// 点击取消,dismiss表示取消的意思

  以上是关于Web接口自动化元素定位之高阶用法的介绍,由多测师亲自撰写。https://www.aichudan.com/

联系电话

17727591462

返回顶部