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语言的定位方式一样,只是语法不一样。

原文地址:https://www.cnblogs.com/wtx0/p/8535231.html

时间: 2024-10-07 16:09:53

Web端自动化元素定位方法的相关文章

selenium元素定位方法介绍

元素定位方法 元素名称 webdriver API id find_element_by_id() name find_element_by_name() class name find_element_by_class_name() tag name find_element_by_tag_name() link text find_element_by_link_text() partial link text find_element_by_partial_link_text() xpat

Appium学习笔记4_元素定位方法

Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自己的了解和学习,简单的总结下关于Appium native APP上的一些元素定位方法的使用以及通过UI Automator Viewer定位页面以后,如果从上面定位到你想使用的元素. 已淘宝为例,来进行元素的定位.打开UI Automator Viewer Appium和Webdriver有一点区

selenium自动化测试——常见的八种元素定位方法

selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位:find_element_by_tag_name() 4.通过 class 定位:find_element_by_class_name() 5.通过 css 定位:find_element_by_css_selector() 6.通过 link 定位:find_element_by_link_tex

Robotframework + Appium 之常用元素定位方法

任何自动化测试,其实手动测试也是一样的,元素定位(目标定位)是首要任务,这是最直接的测试对象呀! 好了,废话不多说,又到了元素定位啦,之前我们已经介绍过selenium及appium常用的定位方法,下面再单独介绍下 Robotframework-AppiumLibrary常用元素定位方法,其实它们的思想是一样的,只是格式上有些差异,详情如下: AppiumLibrary需要在应用程序中查找元素的所有关键字都使用参数locator.当提供locator值时,它将与特定元素类型的键属性进行匹配. 常

Appium+python自动化-元素定位uiautomatorviewer的使用

前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性. 一.启动uiautomatorviewer.bat 1.打开目录D:\androidsdk\android-sdk-windows\tools 14

04-selenium 八大元素定位方法

目录 selenium 八大元素定位方法 1.id 2.name 3.class name 4.tag 5.link text 6.partial link text 7.xpath 8.css selector 8.1 示例:特殊 iframe 操作 8.2 示例:特殊 Select 操作 9.总结 selenium 八大元素定位方法 对于元素的定位,WebDriver API可以通过定位简单的元素和一组元素来操作.在这里,我们需要告诉Selenium如何去找元素,以至于他可以充分的模拟用户行

web自动化——元素定位

我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素. 元素定位的8种方法: id.name.class.tag.link.partail_link.xpath.css_selector 1.id定位: find_element_by_id() 从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框 代码: # coding = utf-8 from time import sleep from sel

Web元素定位方法_8大元素+xpath定位

元素定位,顾名思义就是根据元素的特征,来确认元素的条件,然后根据条件去找到唯一的那个元素. 一.八大元素 1.只根据元素的一个属性来找元素(6大) 1)id.name.class_name(只支持一个class值).tag_name 2)只针对a元素 link_text.partial_link_text 示例: 1 # class - 只能是class属性当中的一个值 2 driver.find_element_by_class_name("s_ipt") # 1个元素 - 匹配到的

Selenium常见元素定位方法和操作

一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html        这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text fin