Selenium中div、b、span等WebElement元素该如何命名?
UI自动化页面元素命名通用实践
目前没有强制的官方统一标准,行业通用的命名逻辑是优先体现元素的业务用途,仅当标签类型是核心交互属性时才加后缀,不用刻意为所有标签都加对应后缀。
你之前给frame、下拉列表加Frame、DropDown后缀的做法是合理的,因为这类标签本身对应固定的交互属性,加后缀能让其他维护者一眼看懂元素的交互类型。而<div>、<b>、<span>这类纯样式/容器标签,本身没有特殊交互属性,完全不需要加Bold、Span这类和标签绑定的后缀,原因有两个:
- 后续前端如果重构样式,比如把
<b>改成加了粗体样式的<span>,你还要同步改变量名,平白增加维护成本 - 其他维护者看变量名的核心需求是知道元素的业务作用,不是知道它用了什么HTML标签
实用命名规则参考
- 交互类元素保留后缀:只有按钮、输入框、下拉框、frame、复选框、标签页这类有明确交互属性的元素,加对应后缀,比如
submitBtn、searchInput、userLevelDropDown - 展示类元素按业务命名:纯文本、容器类的元素,直接按业务含义命名即可,不需要带标签相关后缀
对应你给出的代码示例,如果这个粗体元素是用来展示某条提示信息,直接按业务含义命名即可:
@FindBy(xpath = "//b[contains(text(), 'Something')]") private WebElement somethingTip;
如果这个元素本身就是用来展示用户名,那直接命名为userName也完全没问题。
内容的提问来源于stack exchange,提问作者scode
相关产品推荐
相关产品推荐

