自动化测试怎么设置div的位置定位某个div位置

菜鸟学自动化测试(五)-----selenium命令之定位页面元素
定位页面元素
对于很多selenium命令,target域是必须的。Target在web页面范围内识别UI元素,它使用locatorType=location的格式。在很多情况下,locatorType可以省略,下面举例方式来描述各种类型的locatorType.
定位页面元素
对于很多selenium命令,target域是必须的。Target在web页面范围内识别UI元素,它使用locatorType=location的格式。在很多情况下,locatorType可以省略,下面举例方式来描述各种类型的locatorType.
假如,有如下一段HTML代码:
&form id= "loginForm" &
&input name= "username" type= "text" /&
&input name= "password" type= "password" /&
&input name= "continue" type= "submit" value= "Login" /&
&input name= "continue" type= "button" value= "Clear" /&
&a href= "continue.html" &Continue&/a&
我们看看selenium提供了那些定位方式:
1. identifier定位
这是最普遍的一种定位方式,当不能识别为其它定位方式后,默认为dientifier定位,在这种策略下,第一个使用id的页面元素将被识别出来,如果没有使用指定id的元素,那么将识别第一个名字与指定条件相符的元素。
identifier识别html各项元素的定位策略如下:
identifier=loginForm
//定位页面元素为from
identifier=username
//定位页面元素为username
identifier=Continue
//定位页面元素为Continue
因为identifier定位是默认方式,因此“identifier=” 可以不写。
//同样表示定位页面元素为Continue
这种定位方式比identifier定位范围更窄,当然也更具体,如果你知道元素id特征,就使用这种方式:
id=loginFrom
//定位页面元素from
3. name定位
名称定位方式将会识别第一个匹配名称属性的UI元素。如果多个元素拥有相同的名称属性,可以使用过滤器来进一步优化你的定位策略。默认的过滤器是Value (匹配value特征):
name=username
//定位页面元素为username
name=Continue
value=Clear
//定位页面元素为Continue ,值为Clear
name=Continue
type=button
//定位页面元素为Continue ,类型为button
上述三种定位器使得selenium可以不依赖于UI元素在页面上的位置而进行测试。所以,当页面结构发生变化时,测试依然可以通过。有时候,设计人员频繁改动页面的情况,通过id和name特征定位元素就变的非常重要。
4. XPath定位
XPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可是使用这种强大语言在web应用中定位元素。
XPath扩展了上面id和name定位方式,提供了很多种可能性,比如定位页面上的第三个多选框。
xpath=/html/body/form[1]
//绝对路径(html的任何轻微改变都会导致失败)
//HTML中的第三个form元素
xpath=//form[@id='loginForm']
//id为loginFrom的元素
//input[@name='username']
//input元素且其name为‘username’
//form[@id='loginForm']/input[1]
//针对id为‘loginForm’的form,定位它的第一个input元素
//input[@name='continue'][@type='button']
//name为‘continue’且type为‘button’的input
//form[@id='loginForm']/input[4]
//id为‘loingForm’的form,定位它的第四个input元素。
扩展阅读:
W3C XPath Recommendation:
XPath Tutorial:
Firefox插件,可以帮助你获取页面元素的XPath:
XPath Checker
5. 通过超链接定位
可以通过连接文字来定位超链,如果两个链接文字相同,那么第一个匹配的将被识别出来。
link=continue
//定位页面元素连接文字为continue
6. DOM定位
Document Object Model 被用于描述HTML文档,可以使用javaScript来访问。
这一定位策略通过javaScript评估页面上的元素,可以使用分级符号来简化元素定位。
因为DOM定位以“document”开始,所以“dom=”标签并不是必须的。
dom=document.getElementById('loginForm')
// 定位页面元素form
dom=document.forms['loginForm']
// 定位页面元素form
dom=document.forms[0]
// 定位页面元素form
document.forms[0] .usernam
//定位页面元素username
document.forms[0] .elements[3]
//定位页面元素continue,它是form的第四个元素
7。 CSS定位
CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。这些选择器可以被selenium用作另外的定位策略。
css=form#loginForm
//定位页面元素form
css=input[name="username"]
//定位页面元素username
css=input.required[type="text"]
//定位页面元素,其类型为text
css=input.passfield
//定位页面元素,其类型为password
css=#loginForm input[type="button"]
//定位页面元素,其类型为button
css=#loginForm input:nth-child(2)
//定位页面元素passfield,且它为from的第二个input子元素
扩展阅读:
提示:很多有经验的selenium用户推荐CSS定位方式,因为它比XPath更快。而且可以在HTML文件中找到更复杂的对象。
------------------------------------------------------------------------------
菜鸟提示:
讲了这么多页面定位的方式,还是不明白干啥用的?
自动化测试,我们通过工具来完成手工操作,如果我们要点击一个按钮,我们认得那是一个按钮,如何让自动化工具也认得那是一个按钮呢?如何让工具认得
是“确定”按钮,而不是“取消”按钮呢。那每个按钮都有不同的属性,也许属性完全相同但位置不同。我们要通过他们的特征描述它们,然后自动化工具才能根据
我们的描述去找到它们。
那么,转换到我们的自动化测试代码是什么样子呢?
//下面是在java代码的实现
selenium.click("元素属性的描述");
selenium.click("id=loginForm");
selemiun.click("name=Continue
value=Clear");
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】2017互联网超级工程阿里双11完美落幕,交易额突破1682亿,但阿里工程师如何玩转“超级工程”,背后黑科技又是如何?12月13-14日,12位大咖直播分享揭秘1682亿背后技术实践,马上预约&&
移动测试(Mobile Testing)是为广大企业客户和移动开发者提供真机测试服务的云平台,拥有大量热门机型,...
全球领先的SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。
支持MySQL、SQL Server、PostgreSQL、MongoDB、Redis等关系型数据库和NoSQL...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
社区之星年度评选,投票可抽奖
Loading...【读书笔记】如何快速准确的获取页面元素定位 - 简书
【读书笔记】如何快速准确的获取页面元素定位
首先,我需要说明下,写这篇笔记的目的不是告诉读者如何去定位,如何使用工具去定位。目前使用selenium对web自动化测试时完全依赖UI元素的定位,可以说元素位置的变化是牵一发而动全身,我在想有没有一种方法能够快速的获取指定元素的页面中的位置,哪怕他是最慢的xpath,这样,如果页面元素位置变化了,也可以很快的获取到元素位置。看到这里肯定有人会说,遇到元素位置变换的,在定位一次了,诚然这是目前我们能做的方式,但是假如一个位置变化,引起了其后所有元素位置的变化,难道要把后面元素都重新再获取一遍吗?那这个工作量是非常之大的。目前我这边在做的一个web管理后台就由于框架原因,会出现我上面所说的情况。一、爬虫(未实践,一种假设)是否可以使用爬虫去获取给定元素的位置信息,按照id、name、link、classname、xpath的优先级筛选,比如登录模块,正常的定位需要获取以下元素的位置信息(1).登录按钮,点击跳转登录页面(2).账号、密码输入框(3).登录按钮,点击登录(4).特定文案,检查登录是否成功标识1.按照html的顺序逐级往下找,应该是可以获取到绝对xpath路径,此时再去判断是否有id、name等字段,如果有替换,如果无则使用xpath给点钱元素赋定位地址;2.对于动态操作之后才能获取的值,可以通过给页面加载缓存数据,得到已登录状态后的特定元素,然后使用方法1去获取元素定位位置二、selenium IDE该插件能够根据用户的操作,获取每个操作元素的地址、操作、输入值,是辅助selenium定位的绝佳工具,如果可以知道其工作原理,或许可以借助该工具的实现方式来获取元素位置目前能想到的方式就这两种,相对于第二种,第一种是可以尝试,最起码可以提供有限范围的快速获取元素方法,如果真的能实现,对于自动化后期维护成本降低还是有帮助的,所以找时间实践吧,可行的话再来写
百战程序员_ Java1573题 QQ群: 掌握80%年薪20万掌握50%年薪10万 全程项目穿插, 从易到难,含17个项目视频和资料持续更新,请关注 国内最牛七星级团队马士兵、高淇等11位十年开发经验专家录制 北京尚学堂...
问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。碰到频率:100%解决方案:CSS里 {margin...
一、Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素。 例如: 特点:这个路径是从网页起始标签开始一直到要定位的元素的路径,如果要定位的元素在页面最下面,则这个Xpath路径会非常长。如果在要定位的元素与页面开始之间的元素有任何增减,...
WebDriver 进阶 欢迎阅读WebDriver进阶讲义。本篇讲义将会重点介绍Selenium WebDriver API的重点使用方法,以及使用模块化和参数化进行自动化测试的设计。 WebDriver API 进阶使用 元素定位 从之前的讲义和学习中,我们知道,Web...
在使用seleniumwebdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素。其中By类的常用定位方式共八种,现分别介绍如下。1.By.name()当我们要用name属性来引用这个button并点击它...
什么是落后? 落后就是比别人差呗!那到底差多少是落后呢?别人是谁?谁来评判? 从小到大,我们看到最多的就是用分数和名词来对自己进行评判。也就是在自己的圈子里,由分数和名次决定你是处于最前面还是后面。 分数和名次可以让我们更清楚地客观地认识自己。至于如何对待结果,在于你的态度...
别后家乡岁月多,银丝雪鬓总难遮。 青春常被风霜打,未老先遭病痛磨。 慈母心宽容不肖,痴儿意重念孤荷。 难得金钿骚华发,唯寄千思一阙歌。 写了很多诗,风花雪月爱恨情仇历史人物都有,却没有写过自己的至亲,真是不孝。
参考书目《感召力》 研究生时代,很多课程的作业以及期末的考核,演讲都是其中一部分。 还记得第一次做英文演讲,而且还是全英文演讲,每个小组分配到20分钟,作为4个组员之一,虽然我只需要做5分钟的演讲,但是心里还是慌得不行。 提前一周就针对自己的的部分写好了演讲稿,让组员帮忙修...
很多宝宝对皮肤管理存在一定误区,感觉皮肤管理不就是在脸上涂涂抹抹么,自己在家抹些护肤品也是一样的。那么今天小编就给大家解释一下,为什么想做专业的皮肤护理和保养要去专业的皮肤管理中心~
韩式皮肤管理 韩式皮肤管理与传统美容院最大的区别在于...
''风萧萧兮易水寒, 壮士一去兮不复还。 探虎穴兮入蛟宫,仰天呼气兮成白虹。'' 两千多年前,易水河畔。人们在为一位旷世悲情英雄壮行,悲壮的歌声彻天动地。这位英雄就是我们今天要讲的主人公:荆轲。也就是我所讲的,王者荣耀中最离谱的英雄。 在《王者荣耀》游戏中,塑造的荆轲是一位...web自动化测试第3步:元素的基础操作和浏览器基础操作 - 许西城的博客 - CSDN博客
web自动化测试第3步:元素的基础操作和浏览器基础操作
web自动化测试
上一节,我们了解了如何定位元素,其实也有涉及对于元素的操作,这一节我们就详细的介绍一下对于元素的操作和对于浏览器的一些操作
1.对于元素的基础操作:
clear():清除输入框内的文本
send_keys():输入特定的字符 (需要传参)
click():点击元素
submit():提交表单(一般这个方法可以替代click)
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(&/&)
# send_keys 文本框输入值:123
driver.find_element_by_xpath(&//*[@id='wd1']&).send_keys(&123&)
# clear 清除文本框内的文本
driver.find_element_by_xpath(&//*[@id='wd1']&).clear()
# send_keys 文本框输入值:自动化测试
driver.find_element_by_xpath(&//*[@id='wd1']&).send_keys(&自动化测试&)
# click 点击进入贴吧按钮
driver.find_element_by_xpath(&//*[@id='tb_header_search_form']/span[1]/a&).click()
# submit 提交表单(效果等同于click点击)
# driver.find_element_by_xpath(&//*[@id='tb_header_search_form']/span[1]/a&).submit()
2.对于浏览器的基本操作: &&
我们可以通过代码来实现直接控制浏览器,比如访问某个网址,前进后退、跳转浏览器大小、关闭等我们常用的功能,简单介绍一下
get()直接访问某个网址(传参输入网址)
back() 返回上一个页面
forward()进入下一个页面
close()关闭当前标签页
quit()关闭浏览器
set_window_size() 设置浏览器大小(传参输入浏览器长、宽)
maximize_window()& 最大化浏览器
refresh() &刷新页面
我们可以用一幅图来解释一下浏览器操作的方法在实际浏览器中对应的位置
下面是代码演示示例:(为了更好地体现操作,我加入了sleep方法,不至于页面变化太快)
from selenium import webdriver
from time import sleep # sleep方法是为了初学者能够更好地了解操作的变化,所以休眠一定时间,可以去掉
driver = webdriver.Chrome()
# get() 进入百度页面
driver.get(&/&)
# get() 进入贴吧页面
driver.get(&/&)
# back() 返回上一页:百度页面
driver.back()
# forward() 返回下一页:贴吧页面
driver.forward()
# set_window_size() 设置浏览器大小
driver.set_window_size(500, 1000)
# maximize_window() 最大化浏览器
driver.maximize_window()
# 点击title为娱乐明星的&a&标签元素
driver.find_element_by_css_selector(&a[title = '娱乐明星']&).click()
# 关闭当前页面
driver.close()
# 关闭浏览器
driver.quit()
3.其他问题:
对于浏览器的基本操作演示中,有除了sleep()方法第一次见以外,细心地同学会发现close()方法执行时并不是关闭的当前现实的“娱乐明星”页面,而是关闭的百度贴吧首页,这两个知识点大家可以研究一下,一个是等待一个是窗口切换。
我的热门文章本帖子已过去太久远了,不再提供回复功能。相关文章推荐
WebDriver是Selenium体系中设计出来操作浏览器的一套API,可支持多种编程语言,对于Python来说,可以将WebDriver视为Python的一个用于实现Web自动化的第三方类库。We...
最近在学web自动化,记录一下学习成果。
此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求。
环境:windows10,64位
一、安装python
python官方...
这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法、鼠标操作、键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~
一.定位元素方法
二.操作元素方法 ...
上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进...
下面,就来让我们看看神奇的自动化测试是如何进行工作的。
以简单的百度首页的搜索功能为例:编写一个自动化脚本,实现在运行时,自动启动浏览器,使用百度首页的搜索页面自动搜索出关键字为“python环境搭...
Selenium官网的Document里推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath locator速度快,特别是在IE下面(IE没有自己的XP...
本文主要介绍selenium定位元素常用的几种方法
selenium操作浏览器步骤:
查找元素属性----通过元素属性执行相关操作
元素常见的属性:
id,name,class,link_text,x...
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath虽然是被设计用来搜寻XML文档的,不过它也能很好的在HTML文档中工作,并且大部...
Selenium2+python自动化44-元素定位参数化(find_element)
元素定位有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把八种定位合为一种呢?也...
前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架。我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的...
他的最新文章
讲师:董晓杰
讲师:姚远
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 jquery 定位div的位置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信