selenium中使用xpath

selenium中使用xpath

ID:8977449

大小:242.08 KB

页数:5页

时间:2018-04-13

selenium中使用xpath_第1页
selenium中使用xpath_第2页
selenium中使用xpath_第3页
selenium中使用xpath_第4页
selenium中使用xpath_第5页
资源描述:

《selenium中使用xpath》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、虽然最新的IE9仍没支持XPath,IE上运行XPath慢,但JavaScript-XPath已经被纳入Selenium。在Java中使用:Java语言:selenium=newDefaultSelenium(location,port,browser,targetPath);selenium.start();if(browserString=="*iexplore")selenium.useXpathLibrary("javascript-xpath");也可以手工修改selenium-brows

2、erbot.js中默认的XPath库ajaxslt。  XPath原用作确定XML文档中树节点信息,详见参考XPath1.0和XPath2.0。使用见文HowtoparsewebpagesusingXPath。 Firefox有两个插件可以有效定位元素的XPath,一个是鼎鼎大名的Firebug,以下是定位方法:1.右键选中该元素,点击“查看元素”(Inspectelement);2.Firebug中HTML标签显示该元素前端代码被选,在此标签内右键选择“复制XPath”(CopyXPath)。这个

3、XPath来自于DOM树经过了修正,实际使用时需要对照页面实际HTML代码校正。此外Firebug命令行控制台提供了$x(xpath)功能,可用于验证该XPath的返回值。技术背景     在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链接等。比如在用户名输入框和密码输入框输入正确的用户名和密码,然后点击登录按钮进行登录。在Selenium自动化中,Selenium提供多种API来对HTML元素进行操作,对于每个HTML元素,需要一个可以标识它的标识符,在Selenium中称之为定位器

4、,Selenium支持多种不同类型的定位器,有标识符,Id,Name,DOMLocator,XPathLocator,以及CSSLocator等。本文主要讨论DOM,XPATH,以及CSS定位器在不同的浏览器中的使用的优缺点以及注意事项。问题与挑战     针对一个使用SeleniumRC的Web自动化项目,在项目初期在Firefox上采用了比较灵活,简洁的XPath定位器来对应用中的对象进行操作。但在项目开展到1/3时,增加了对IE浏览器支持的需求。在使用现有基于XPath的脚本运行后,发现脚本运

5、行时间呈现几十上百倍地增加,在Firefox上执行花费1分钟的脚本在IE上会花费10~20分钟,甚至更长的时间。该问题就导致了在IE上直接运行之前已完成脚本变得不可行。要了解到Firefox支持原生的Xpath解析功能,而IE不支持原生的Xpath解析,而是基于一个外部的javascriptlibrary(Google'slibrary)来进行Xpath解析。由于需求是要求脚本能够同时支持Firefox和IE浏览器,所以需要寻求另外一种方式来使得在不同浏览器上调用SeleniumAPI所执行时间相当

6、。解决方案     在SeleniumRC0.9.2中,用以解析XPath的javascript库在IE上执行的时间增加了脚本执行时间,而且在越复杂的页面中,在IE上调用API所占用的时间越长。于是决定换用其它类型的定位器,由于该被测Web应用中大多数HTML元素未指定有ID和Name属性,所以在这里首先采用比较灵活的Dom定位器进行测试。使用Dom定位器来对HTML元素定位,该Locator表达式需要以“dom=”或者是“document.”开头的形式,Selenium会执行这段javascrip

7、t片断来最终地取得我们需要访问的HTML元素,由此在Dom定位器中,可以使用Web页面中的DOM对象来获取文档内的所有HTML元素。需要注意一点的是,Selenium执行这段javascript片断的时候,是采用整段javascript脚本执行的值,也即是在这段javascript片断中最后一个表达式的值。使用Dom定位器后,在IE上脚本执行的时间比使用Xpath的时候短很多,基本上跟在Firefox上面所花费的时候基本相当。请参照以下的一个性能对照表:    依照以上表格,不难发现,使用XPath

8、定位器,能使得定位器比较简单,而对于比较复杂的对象(无IE和Name的动态对象)在使用Dom定位器则非常的复杂。由于XPath在IE下的效率极其低下,也只能使用Dom定位器来支持IE浏览器。   在SeleniumRC1.0.1版本发布后,Selenium增加了一个新的Xpath的javascript库:CybozuLabs'fasterlibrary。    由以上表格可见,在IE下使用了CybozuLab的XPathlibrary后,执行效率有了很大提升,基本上可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。