- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件测试联盟: HYPERLINK – 致力于软件测试领域知识传播
软件测试联盟: HYPERLINK – 致力于软件测试领域知识传播
自动化想要模拟用户的行为操作,首先需要识别并定位UI上的元素,而每个元素都有特定的属性来标识自己,webdriver就是通过元素特定的属性来进行定位的。
注:唯一的特定的属性是定位元素的标识!!!
我们可以通过下面的一些属性或方法来识别、定位元素。
使用xpath定位
在高的级别上,尽可能的使用一个浏览器原生的webdriver?XPath?的功能。在一些没有本地的XPath支持的浏览器,我们已经提供了我们自己的实现。这可能会导致一些意想不到的行为,除非你知道各种XPath引擎的差异。
驱动
标签和属性名称
属性值
本地的XPath支持
HtmlUnit?Driver
小写
当他们出现在HTML
是
Internet?Explorer?Driver
小写
当他们出现在HTML
没有
Firefox?Driver
不区分大小写
当他们出现在HTML
是
这点抽象,对于下面这段HTML?代码来说:
Html片段:
input type=text name=example /
INPUT type=text name=other /
inputs = driver.find_elements_by_xpath(//input)
或者
from mon.by import By
inputs = driver.find_elements(By.XPATH, //input)
不同驱动对大小写的支持:
XPath?expression
HYPERLINK /docs/03_webdriver.jsp \l htmlunit-driver HtmlUnit?Driver
HYPERLINK /docs/03_webdriver.jsp \l firefox-driver Firefox?Driver
HYPERLINK /docs/03_webdriver.jsp \l internet-explorer-driver Internet?Explorer?Driver
//input
1?(“example”)
2
2
//INPUT
0
2
0
HTML元素有时并不需要显式地声明,因为他们默认为已知值的属性。例如,“input”的标签并不需要的“type”属性,因为它默认为“text”。webdriver使用XPath时,你不应该期望能够对这些隐含的属性相匹配。
1.2 使用id定位
这是最有效、最优选的定位方式,但最大的问题在于开发人员时常不为元素设置唯一的id或是动态的生成id,在自动化的过程应与开发人员进行交互,避免这类情况的发生。
下面看看如何通过id方式来进行定位:
这是我们要定位的html片段:
div id=myId.../div
element = driver.find_element_by_id(myId)
或者
from mon.by import By
element = driver.find_element(by=By.ID, value=myId)
1.3 使用name定位
这是另外一种最有效、最优选的定位方式,但最大的问题在于开发人员时常不为元素设置唯一的id或是动态的生成name,在自动化的过程应与开发人员进行交互,避免这类情况的发生。
下面看看如何通过name方式来进行定位:
Html片段:
input name=myName type=text/
cheese = driver.find_element_by_name(myName )
或者
from mon.by import By
cheese = driver.find_element(By.NAME, myName )
1.4 使用css定位
通过CSS的定位策略。默认情况下本机浏览器支持CSS定位,所以,请参考W3C?CSS选择器
/TR/CSS/#selectors?显示一般可用的CSS选择器的列表。如果浏览器没有原生支持CSS查询,可以使用 Sizzle(Sizzle是一个纯javascript?CSS选择器引擎)。目前,IE?6,7和FF3.0使用Sizzle的CSS查询引擎。
注意:不是所有浏览器对CSS的支持都是一样的,可能在一个浏览器中运行良好,切换到另一个浏览器则不然。
具体用法如下:
Html片段:
div id=food
span class=dairy牛奶/span
span class=dairy aged奶酪/span
/div
cheese = driver.find_element_by_css_selector(#food span.dairy.a
您可能关注的文档
- CentOS6.3_64安装手册-计算机技术资料.doc
- disk分区方法-计算机技术资料.docx
- Eclipse中配置selenium+testng-计算机技术资料.docx
- Java+selenium环境搭建-计算机技术资料.docx
- LoadRunner脚本的参数设置-block篇-计算机技术资料.docx
- LR乱码问题汇总-计算机技术资料.docx
- pro-计算机技术资料.docx
- python webdriver初步印象-计算机技术资料.docx
- python webdriver处理iframe-计算机技术资料.docx
- python webdriver键盘操作-计算机技术资料.docx
最近下载
- 2021-2022学年江西省南昌市九年级(上)期中物理试卷(附答案详解).docx VIP
- 全自动氩气纯化器-四川普瑞净化设备有限公司.PDF VIP
- 山东科学技术版劳动实践指导手册六年级第3课家用器具使用与维护家用电器的使用科学使用电冰箱 教案.docx VIP
- 单式氩气纯化器技术参数要求.DOC VIP
- 央国企成立数科公司底层逻辑与相关定位.docx VIP
- (正式版)C-J-T 232-2006 薄壁不锈钢内卡式管材及管件.docx VIP
- 2025年医学检验实验室ISO15189认可评审介绍.pptx VIP
- 八个方向路线图.ppt VIP
- 优秀大学生职业生涯规划书经典PPT.pptx VIP
- GB50007-2011 建筑地基基础设计规范.docx
文档评论(0)