代码之家  ›  专栏  ›  技术社区  ›  Paul Mendoza

网页大小为450 KB。生成SeleniumXPath的页面的大小是否需要30多秒才能在IE中按ID找到元素?

  •  0
  • Paul Mendoza  · 技术社区  · 15 年前

    我一直在对一个站点运行硒测试,在人们最常使用的一个主页上,这个页面是450kb。这是一个设计糟糕的页面,但这并不是重点。当我编写Selenium测试时,每当测试需要通过ID在页面上定位某个内容时,都需要30秒才能找到该元素。结果,这使得测试运行异常缓慢。

    我使用IEHTA作为浏览器类型。它也是一个HTTPS站点。

    我还使用了下面的xpath解析器,我听说它应该更快。

    selenium.usexpathlibrary(“javascript xpath”);

    如果你能想到任何能使定位这些元素更快的方法,任何提示或建议请告诉我。我想知道我是否需要在我的系统上配置一些不同的东西,以便更快地定位元素。

    3 回复  |  直到 15 年前
        1
  •  1
  •   AutomatedTester    15 年前

    使用硒的xpath和ie需要很长时间才能处理。最好的解决方法之一是让它更快地找到元素,这就是使xpath更直接。

    例如,如果一个元素的属性中有一个类,请将它添加到xpath查询中。 例如//DIV可以变为//DIV[@class='classname']

    如果它有一个ID,即使它是动态的,也要尝试使用它。例如//DIV[包含(@id,'nondynamicpart')]

    xpath越直接,越快,因为每次查询返回的项越少。

    页面大小会影响查询的速度,因此缩小页面会加快查询速度

        2
  •  0
  •   tsilb    15 年前

    这是一个非常大的页面,但并非闻所未闻。你包括你的课程规模吗?另外,如果页面使用Ajax,那么您将无法在“源代码”中看到所有内容。

    页面是否有效XHTML?如果是这样,您可以像对待一个XML文档一样对待它,并通过xpath将其导入其中。

        3
  •  0
  •   NLord    15 年前

    在IE(特别是IE6)下,基于xpath的定位策略可能非常慢。除了之前的答案,我建议尝试基于.css的定位策略(您可以在Selenium的文档中找到它的示例)。

    “测试需要通过ID在页面上定位某个东西”——这还不清楚,因为按ID定位应该是最快的方法之一。为什么要将xpath用于具有id的元素,为什么不使用内置Selenium的特性(我说的是Selenium.Type(“id”,“textToType”))呢?