C# 使用Webdrive查找和获取值时,哪个网页元素标记更好

C# 使用Webdrive查找和获取值时,哪个网页元素标记更好,c#,css,selenium,xpath,tdd,C#,Css,Selenium,Xpath,Tdd,我正在使用Selenium对C.进行UI测试。当我开始测试前端时,我必须决定如何“标记”我的web元素,以便于将来的测试和维护。 因此,如果我有或或任何其他元素,那么使用什么更好呢id=“element\u id”,name=“element\u name”,class=“class\u name”,还是仅使用Xpath 还是别的什么 通常,在HTML中设置唯一元素的方法是使用id标记。大多数网站想当然地认为标签的id是唯一的 如果您正在标识站点中的“项目”,则通常会使用此选项,通常可以这样描述

我正在使用Selenium对C.进行UI测试。当我开始测试前端时,我必须决定如何“标记”我的web元素,以便于将来的测试和维护。 因此,如果我有
或任何其他元素,那么使用什么更好呢
id=“element\u id”
name=“element\u name”
class=“class\u name”
,还是仅使用Xpath


还是别的什么

通常,在HTML中设置唯一元素的方法是使用
id
标记。大多数网站想当然地认为标签的
id
是唯一的

如果您正在标识站点中的“项目”,则通常会使用此选项,通常可以这样描述


请注意,
class
根本不是唯一的,因为它主要用于样式,您可以在多个元素上使用同一类,也可以在单个元素上使用多个类。

通常,在HTML中设置唯一元素的方法是使用
id
标记。大多数网站想当然地认为标签的
id
是唯一的

如果您正在标识站点中的“项目”,则通常会使用此选项,通常可以这样描述


请注意,
根本不是唯一的,因为它主要用于样式,您可以在多个元素上使用同一类,也可以在单个元素上使用多个类。

我建议与您的开发团队谈谈。 从开发人员的角度来看,如果我要对UI进行更改以修复bug或增强外观,那么这些更改将影响Selenium UI测试。最不受欢迎的更改是id=“element\u id”。开发人员通常使用CSS,如果您正在查找一个元素Find(By.CssSelector(“CssSelector”)),如果该元素发生了变化,那么您的测试将失败,因此将查找(By.XPath(“//XPath”))

我会说使用Find(By.Id(“element_Id”)


但是,考虑到所有内容都已更改,那么您将不得不更改测试中的所有内容。

我建议与您的开发团队谈谈。 从开发人员的角度来看,如果我要对UI进行更改以修复bug或增强外观,那么这些更改将影响Selenium UI测试。最不受欢迎的更改是id=“element\u id”。开发人员通常使用CSS,如果您正在查找一个元素Find(By.CssSelector(“CssSelector”)),如果该元素发生了变化,那么您的测试将失败,因此将查找(By.XPath(“//XPath”))

我会说使用Find(By.Id(“element_Id”)


但是,如果所有内容都已更改,那么您必须更改测试中的所有内容。

如果您为该元素定义了
id
,则使用id(id对于元素来说是唯一的,并且selenium驱动程序很容易找到),但是如果您为该元素定义了
id
,那么csslint不使用id又如何,然后使用ID(ID对于元素来说是唯一的,selenium驱动程序很容易找到),但是csslint不使用ID,等等,还有name呢?我开始认为这是一个解决办法。您可以命名您将来需要的所有特定字段,这样即使重新设计页面,也不会影响测试成功。还有一件事。。。如果我使用供应商代码,如何确保我所有的
id
仍然是唯一的?名称呢?我开始认为这是一个解决办法。您可以命名您将来需要的所有特定字段,这样即使重新设计页面,也不会影响测试成功。还有一件事。。。如果我使用供应商代码,我如何确保我所有的
id
仍然是唯一的?