在ie上运行selenium的测试程序时,如果使用的是xpath,会发现速度奇慢无比,
例如这样一个测试
assertTrue(selenium.isElementPresent("//div[@id='content']/div[1]/table/tbody/tr[2]/td[2]"));
在firefox上的时间是毫秒级的,但在ie上却要数十秒,经过查找资料,终于找到
了解决办法:
1. 更换默认的xpath库
除了ie,其他主要浏览器都是内置对xpath的支持的,但ie不行,所以selenium
使用了javascript库,默认使用的是ajaxslt,这个会比较慢,可以换成
javascript-xpath, 虽然比firefox还是慢,但也快多了,上面的例子只需要不
到1秒。换法很简单,如下:
selenium = new DefaultSelenium(location, port, browser, targetPath);
selenium.start();
selenium.useXpathLibrary("javascript-xpath");
2. 写xpath时,尽量从一个具有id的元素开始,这样也可以大大提高执行速度,例如
如果上面的测试写成下面这样,运行时间就会变成几秒了。
assertTrue(selenium.isElementPresent("//div[1]/table/tbody/tr[2]/td[2]"));
文中提到的时间是我的环境上的情况,估计具体时间和机器配置、软件版本、页面
复杂度等都有密切关系。
分享到:
相关推荐
在Selenium WebDriver中使用By.Xpath快速定位页面元素,实现多属性定位一个元素。
爬虫学习笔记(主要涉及scrapy,request,xpath,selenium等).md
C#小工具箱 IE下获取XPATH小工具源码
而Selenium也支持CSS定位器,在IE和Firefox浏览器下,使用CSS定位器时,执行的效率与XPath基本相当,而且CSS定位器同样与XPath比较简洁。所以对CSS比较熟悉的开发人员也可以使用CSS定位器来进行Selenium Web自动化...
主要用于自动化测试中IE浏览器下获取元素的XPath,经过测试,结果和chrome生成的一样,使用java,或python+selenium定位元素
RPA Selenium 定位Xpath 工具 ; Fire-IEBrowser1.4;xpath-helper
Selenium_XPath定位详解 想下载csdn上的东西,苦于无积分,被逼无奈,才生此计,只设置了2分,跪求大佬支持一下。
测试关于大数据测试的用例,可以作为参考资料,内容详细
除了ie,其他主要浏览器都是内置对xpath的支持的,但ie不行,所以selenium 使用了javascript库,默认使用的是ajaxslt,这个会比较慢,可以换成 javascript-xpath, 虽然比firefox还是慢,但也快多了,上面的...
如果想测试一些,不能在firefox中正常显示的程序,则只有安装selenium RC,然后自己编写测试脚本,只有这样,脚本才能在ie中运行。 12.怎样安装多窗口模型? (1)启动selenium-server时,输入以下的命令:java...
Selenium xpath,
xpath的使用方法
在之前用到的Selenium Xpath中,部分页面元素id是固定的,定位相对方便;再有,动态元素的xpath定位也不太复杂。对于EXT作为框架开发的Web应用,页面元素的 id等属性是动态的,例如用户每次登陆页面所生成页面元素的...
本文主要介绍java selenium XPath,这里整理了XPath的资料,并附实现方法,有需要的小伙伴可以参考下
SELENIUM2自动化测试实战(基于PYTHON语言)源码
在学习selenium自动化测试技术之前,首先需要学习xpath的基础知识。
xml文件目前获取数据最简单的方法还是使用xpath,通过网上的多次查询与整理,我认为目前我使用的方法比较容易理解和使用。 共享给朋友们试试看。
xpath定位页面结点,轻松使用xpath来查找页面结点,使测试更简单,特别是集成selenium测试工具的使用,非常好用。
2.Selenium私房菜系列2 -- XPath的使用 3.Selenium私房菜系列3 -- Selenium API参考手册 4.Selenium私房菜系列4 -- Selenium IDE的使用 5.Selenium私房菜系列5 -- 第一个Selenium RC测试案例 6.Selenium私房菜系列6 ...
XPath Helper可以支持在网页点击元素生成xpath,整个抓取使用了xpath、正则表达式、消息中间件、多线程调度框架的chrome插件。