加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链接等。比如在用户名输入框和密码输入框输入正确的用户名和密码,然后点击登录按钮进行登录。在Selenium自动化中,Selenium提供多种API来对HTML元素进行操作,对于每个HTML元素,需要一个可以标识它的标识符,在Selenium中称之为定位器,Selenium支持多种不同类型的定位器,有标识符,Id,Name, DOM Locator,XPath Locator, 以及CSS Locator等。本文主要讨论DOM, XPATH,以及CSS定位器在不同的浏览器中的使用的优缺点以及注意事项。

2.问题与挑战       针对一个使用Selenium RC的Web自动化项目,在项目初期在Firefox上采用了比较灵活,简洁的XPath定位器来对应用中的对象进行操作。但在项目开展到1/3时,增加了对IE浏览器支持的需求。在使用现有基于XPath的脚本运行后,发现脚本运行时间呈现几十上百倍地增加,在Firefox上执行花费1分钟的脚本在IE上会花费10~20分钟,甚至更长的时间。该问题就导致了在IE上直接运行之前已完成脚本变得不可行。要了解到Firefox支持原生的Xpath解析功能,而IE不支持原生的Xpath解析,而是基于一个外部的javascript library(Google's library)来进行Xpath解析。由于需求是要求脚本能够同时支持Firefox和IE浏览器,所以需要寻求另外一种方式来使得在不同浏览器上调用Selenium API所执行时间相当。

3.解决方案       在Selenium RC 0.9.2中,用以解析XPath的javascript库在IE上执行的时间增加了脚本执行时间,而且在越复杂的页面中,在IE上调用API所占用的时间越长。于是决定换用其它类型的定位器,由于该被测Web应用中大多数HTML元素未指定有ID和Name属性,所以在这里首先采用比较灵活的Dom定位器进行测试

使用Dom定位器来对HTML元素定位,该Locator表达式需要以“dom=” 或者是“document.”开头的形式,Selenium会执行这段javascript片断来最终地取得我们需要访问的HTML元素,由此在Dom定位器中,可以使用Web页面中的DOM对象来获取文档内的所有HTML元素。 需要注意一点的是,Selenium执行这段javascript片断的时候,是采用整段javascript脚本执行的值,也即是在这段javascript片断中最后一个表达式的值。

使用Dom定位器后,在IE上脚本执行的时间比使用Xpath的时候短很多,基本上跟在Firefox上面所花费的时候基本相当。

转载于:https://www.cnblogs.com/qmfsun/p/4704015.html

Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析相关推荐

  1. 在Selenium Webdriver中使用XPath Contains、Sibling函数定位

    前言 在一般情况下,我们通过简单的xpath即可定位到目标元素,但对于一些既没id又没name,而且其他属性都是动态的情况就很难通过简单的方式进行定位了. 在这种情况下,我们需要使用xpath1.0内 ...

  2. css定位的百分比的算法,css定位中的百分比

    ----转载自自己在牛人部落中的相关文章--- 在前端css定位中经常面对的一个问题是,百分比定位究竟是针对于谁定位? 一.margin,padding的百分比 首先从css的设计意图说起,在浏览器默 ...

  3. python中xpath定位_xpath最新:关于python中的xpath解析定位_爱安网 LoveAn.com

    关于"xpath"的最新内容 聚合阅读 这篇文章主要介绍了关于python中的xpath解析定位,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章主要 ...

  4. html中背景条纹效果,CSS制作Web页面条纹背景样式的技巧分享

    通过CSS中的linear-gradient主要就能显示出不同方向的条纹效果,这里我们就了解CSS制作Web页面条纹背景样式的技巧分享,需要的朋友可以参考下 一.横向条纹如下代码:background ...

  5. html5横竖条纹背景,CSS制作Web页面条纹背景样式的介绍

    这篇文章主要介绍了关于CSS制作Web页面条纹背景样式的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 通过CSS中的linear-gradient主要就能显示出不同方向的条纹效果 ...

  6. Selenium webdriver中的xpath定位

    使用selenium进行自动化测试,其实很多时候就是模拟用户的操作,在前端页面对元素进行操作,因此元素的定位在自动化测试中是至关重要的.关于如何 使用id,className,name,linkTex ...

  7. 在chrome-console中进行xpath/css/js定位

    一.Xpath console中调用xpath的基本格式:$x("xpath表达式") 1.1 绝对定位与相对定位 绝对定位:$x("/xpath表达式") 相 ...

  8. html页面中常用标记,收集的web页面html中常用的特殊符号大全

    收集的web页面html中常用的特殊符号大全 2007-03-09 00:00:00 作者: 收集的web页面html中常用的特殊符号大全 *特殊符号:·⊙①⊕◎Θ⊙*○¤㊣㈱@の*□*☆** ▲△▼ ...

  9. web自动化测试(一) 介绍 及 Xpath,Css 定位元素

    1.1什么是自动化测试 自动化测试的概念: 软件自动化测试就是通过测试工具或者其他手段, 按照测试人员的预定计划对软件产品进行自动化 测试,他是软件测试的一个重要组成部分,能够 完成许多手工测试无法完 ...

最新文章

  1. 实地址模式与保护模式下的中断与异常处理
  2. Exchange企业实战技巧(15)启用向外部联系人发送邮件时的提醒
  3. Python程序每日一练习
  4. 微课|中学生可以这样学Python(例4.2):打印九九乘法表
  5. SAP License:物料类型的划分标准
  6. [原创]解决某物流企业二维码打印问题
  7. 从h264码流中获取图像的宽高---版本1 (移植于ffmpeg)
  8. react給變量賦值并列元素
  9. D3D11 法线贴图(凹凸贴图)
  10. DRM-widevine 总结
  11. STC15单片机-无线通讯(WIFI模块)
  12. 小游戏,客户端游戏版号自助申请教程
  13. sqldbx连接db2数据库
  14. 计算机十进制数中码数有几个,计算机中的数和码
  15. Anacoda的用途
  16. role=“presentation“啥意思
  17. IPU到底是个什么鬼?
  18. Yarn上(Hadoop上)跑Spark出现Retring connect to server. 集群间机器无法连接的问题
  19. 仿去哪网酒店的地图:POI、定位、国际地图、导航、marker及其自定义infowindow
  20. 第三周的第一天,心情很down。

热门文章

  1. 教你用BitMap排序、查找和存储大量数据
  2. java oscache 使用_OScache的使用(Java对象)
  3. python正则匹配ip地址_Python正则表达式匹配和提取IP地址
  4. 优秀的网工都会NAT
  5. 今年双 11,阿里业务 100% 上云,云原生有哪些技术亮点?
  6. 云栖第一天:解密两个100%背后的云原生
  7. Fluid 进入 CNCF Sandbox,加速大数据和 AI 应用拥抱云原生
  8. 在游戏运营行业,Serverless 如何解决数据采集分析痛点?
  9. 清理计算机英语是什么,如何清理电脑(国外英文资料).doc
  10. python 人工智能课程大纲_《人工智能》教学大纲