在检查了几篇博客并阅读了这些内容之后,我尝试使用jQuery定位器和此处提到的方法来运行测试。我的测试使用了很多基于索引的选择器,例如xpath =
div[class='myclass][index]
。 在jQuery中,我尝试
.myclass:eq(index)
检索元素。但是我发现对于这些操作,jQuery比IE和Firefox中的XPath慢得多。 jQuery中是否有一种更快的方法来选择第n个元素?#1 楼
没有jQuery会不会更快。与其他现代浏览器相比,IE具有非常慢的JavaScript引擎。使用jQuery选择器意味着您正在使用JavaScript查询DOM,因此,您立即受到IE的JavaScript引擎的限制。 IE中对XPath的支持也通过JavaScript库(Google的邪恶的优秀xpath库)进行,因此XPath的速度也将很慢。
IE中最快的定位器策略是CSS,因为它的本机支持,当然有所不同IE版本对CSS的支持不同,因此在不同版本的IE中支持不同的CSS定位器。
以上所有这些使IE成为实现自动化的绝对乐趣...;)
#2 楼
我们在项目中使用以下三个不同的定位器使用Ajaxslt库的XPath
使用Javascript库的XPath
jQuery Selector
测试是从Tellurium Issues页面创建的,包括三套
一系列测试流程,包括问题搜索和问题数据访问
类似于第一个,但没有在UI模块中进行组定位
访问问题表中的数据(限制大小为20行和10列) robotframework-seleniumlibrary
中的jQuery选择器Selenium Library 2.3引入了注册和使用自定义位置策略来在网站上定位元素的功能。新策略必须由selenium-server.jar加载。本指南将说明如何启用基于jQuery的位置策略。
http://code.google.com/p/robotframework-seleniumlibrary/wiki/jQueryElementSelectors
评论
-1:因为问题是关于不同定位器类型的性能,而您的答案与之根本无关。您的帖子如何回答这个问题?
– dzieciou
13年8月31日在15:16
#3 楼
我很早以前就对CSS,jQuery和XPath进行了一些分析,我觉得jQuery没有比CSS和XPath提供更好的结果。 CSS比XPath快一点。评论
-1是因为答案没有任何事实或链接的支持,因此听起来像是对性能的主观感知。
– dzieciou
13年8月31日在15:15
评论
我没有任何指标,但我希望CSS是IE8中最快的。 jQuery具有JavaScript依赖性,IE8中的XPath也具有JavaScript依赖性(由于IE8不自然地支持XPath,因此必须通过JavaScript libraray运行)。 IE的JavaScript性能不足。IE xpath不可靠。例如,我发现在我的测试中,当我执行By.name(“ soemName”)时会找到WebElement,而当我执行By.xpath(“ // input [@ name ='soemName']”)时找不到。在FF上都可以完美工作。
您确定名称中没有空格吗? By.xpath(“ // input [包含(@ name,'soemName')]”))有效吗?
stackoverflow.com/questions/4346479/…上的文章详细介绍了不同定位器的性能