如何降低Salesforce测试用Selenium自动化脚本的维护工作量?
Salesforce Selenium自动化测试元素定位维护优化方案
以下方案可同时覆盖按钮、数据展示类字段的定位稳定性需求,大幅降低版本升级后的脚本维护量:
按钮类元素稳定定位方案
- 优先使用
data-id属性定位:Salesforce标准按钮预置的data-id为固定值,不会随版本升级变更,定位示例://button[@data-id='standard_new_button'] - 使用
aria-label属性定位:自定义按钮的可访问性标签由业务配置,功能不变则属性值不变,定位示例://button[@aria-label='提交合同审批'] - 基于按钮文本定位:若按钮文本固定无多语言切换需求,用
normalize-space()消除空格、换行符的影响,定位示例://button[normalize-space(text())='立即保存']
数据读取(展示类)字段稳定定位方案
- 基于字段API属性定位:大部分展示类字段会携带
data-field-api-name属性,对应Salesforce后台配置的字段API名,除非后台修改字段配置否则永久不变,定位示例://*[@data-field-api-name='ContractAmount__c']//*[contains(@class,'field-value')] - 基于标签-值关联结构定位:Salesforce详情页的字段均为“字段标签+字段值”的固定结构,可先定位到固定的字段标签节点,再匹配同层级的字段值节点,不会受DOM层级变动影响,定位示例:
//*[text()='合同金额']/following-sibling::*[contains(@class,'test-id__field-value')]//span[@data-output-element-id='output-field']
通用优化规则
- 所有元素定位统一存放在页面对象模型(POM)的单独文件中,即使出现定位变动仅需修改一处,无需全量调整测试脚本
- 禁止使用绝对路径XPath,避免依赖动态生成的ID、DOM层级序号这类易变动属性
- 可联系管理员在自定义组件配置阶段为按钮、自定义字段预置固定的
data-testid属性,该属性为Salesforce官方提供的测试专用属性,不会随版本升级自动修改
内容的提问来源于stack exchange,提问作者Venkata pratheek reddy chavva
相关产品推荐
相关产品推荐

