我一直在针对网站运行selenium测试,并且在人们最常使用的主页之一上,该页面是450KB。这是一个可怕的设计页面,但这不是重点。当我编写硒测试时,每次测试需要通过ID在页面上找到某些内容时,需要30秒才能找到该元素。结果,这使得测试运行得非常慢。
我使用iehta作为浏览器类型。它也是一个https网站。
我也使用以下xpath解析器,我听说它应该更快。
selenium.UseXpathLibrary( “JavaScript的xpath的”);
如果您能想到任何可以更快地找到这些元素的信息,请告知我们任何提示或建议。我想知道是否需要在我的系统上配置不同的东西,以使元素的定位更快。
答案 0 :(得分:1)
使用Selenium的Xpath和IE确实需要很长时间才能处理。绕过这个问题的最好方法之一就是让它更快地找到元素,使XPath更直接。
例如,如果元素的属性中有一个类,则将其添加到Xpath查询中。 例如// div可以变成// div [@ class ='classname']
如果它有ID,即使其动态尝试使用它。例如// div [contains(@ id,'nondynamicpart _')]
xpath越直接越快,因为每次查询都会返回更少的项目。
页面大小会影响查询的速度,因此缩小页面会使其更快
答案 1 :(得分:0)
这是一个非常大的页面,但并非闻所未闻。你是否包括会话的大小?此外,如果页面使用AJAX,您将无法在“源”中看到所有内容。
页面是否有效XHTML?如果是这样,你就可以像对待XmlDocument和XPath那样对待它。
答案 2 :(得分:0)
基于XPath的位置策略在IE下可能会非常慢(尤其是IE6)。除了previuos答案,我建议尝试基于.css的位置策略(你可以在Selenium的文档中找到它的样本)。
“测试需要通过ID在页面上找到某些东西” - 这一点不清楚,因为ID的locationg应该是最快的方法之一。你为什么要把XPath用于有ID的元素,为什么不用内置selenium的功能(我说的是selenium.type(“ID”,“textToType”))?