ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Web端自动化元素定位方法

2022-06-20 13:02:26  阅读:153  来源: 互联网

标签:Web 定位 frame driver findElement 自动化 click switchTo


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();

6)通过标签tabname定位

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,非网页弹窗,常用方法无法定位的情况怎么办呢?下面就给大家介绍下如何解决这些定位不到的方法。

二、高阶方法

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页面中使用Java语言的元素的定位方法,Python语言的定位方式一样,只是语法不一样。

标签:Web,定位,frame,driver,findElement,自动化,click,switchTo
来源: https://www.cnblogs.com/chenianmingtong/p/16392872.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有