代码之家  ›  专栏  ›  技术社区  ›  Achilles

使用含硒的主页测试ASP.NET网站

  •  3
  • Achilles  · 技术社区  · 15 年前

    在处理使用母版页在ASP.NET页上呈现的控件的更改“name”和“id”属性时,如何避免破坏Selenium测试?我希望避免在ASP.NET使用不同的DOM标识符呈现网页控件时更改测试。

    2 回复  |  直到 15 年前
        1
  •  5
  •   Robert Harvey    15 年前

    http://www.stevetrefethen.com/blog/AutomatedTestingOfASPNETWebApplicationsUsingSelenium.aspx

    硒 使用xpath和 提供定位能力 基于xpath表达式的控件, 减少了对HTML硬编码的需要 将结构标记到测试脚本中。用于 例如,ASP.NET运行时可以 呈现ID属性,如下所示:

    id="ctl00_cphContents_gridMaint_DataGrid"
    

    使用xpath查找此控件 表达式可以简化为 像这样:

    table[contains(@id, "gridMaint")]
    

    如果 DataGrid更改脚本将 只要继续正常工作 因为表的ID包含文本 “GRIDMITET”。

        2
  •  3
  •   Dave Hunt    15 年前

    另一种选择是使用CSS定位器。它们通常比xpath更不脆弱。例如,要以.myDiv类为目标,可以使用定位器“css=.myDiv”。如果指定的元素具有其他类,那么css定位器仍然可以工作,尽管xpath等效值将从“//div[@class='mydiv']”更改为“//div[包含(@class,'mydiv']”)。此外,CSS定位器在浏览器中往往比XPath更快。