如何选择最佳的自动化测试定位策略?

简介

定位策略是用于在自动化测试中定位移动应用界面元素的方法和策略。通过选择合适的定位策略,测试人员可以定位和操作应用程序的各种控件,如按钮、文本框、下拉列表等。常见的定位策略包括 ID 定位、XPath 定位、Class Name 定位、AccessibilityID 定位、Name 定位、XPath 模糊定位、Android UI Automator 定位以及 iOS Predicate 定位。通过灵活运用不同的定位策略,可以提高自动化测试的稳定性和可靠性。

App 定位方式

定位策略描述
Accessibility ID识别一个唯一的 UI 元素,对于 XCUITest 引擎,它对应的的属性名是 accessibility-id,对于 Android 系统的页面元素,对应的属性名是 content-desc
Class name对于 iOS 系统,它的 class 属性对应的属性值会以XCUIElementType开头,对于 Android 系统,它对应的是 UIAutomator2 的 class 属性(e.g.: android.widget.TextView)
ID原生元素的标识符,Android 系统对应的属性名为resource-id,iOS 为name
Name元素的名称
XPath使用 xpath 表达式查找页面所对应的 xml 的路径(不推荐,存在性能问题)
Image通过匹配 base 64 编码的图像文件定位元素
Android UiAutomator (UiAutomator2 only)使用 UI Automator 提供的 API, 尤其是 UiSelector 类来定位元素,在 Appium 中,会发送 Java 代码作为字符串发送到服务器,服务器在应用程序的环境中执行这段代码,并返回一个或多个元素
Android View Tag (Espresso only)使用 view tag 定位元素
Android Data Matcher (Espresso only)使用 Espresso 数据匹配器定位元素
IOS UIAutomation在 iOS 应用程序自动化时,可以使用苹果的 instruments 框架查找元素

Web 定位方式

定位策略描述
class name通过 class 属性定位元素
css selector通过匹配 css selector 定位元素
id通过 id 属性匹配元素
name通过 name 属性定位元素
link text通过 text 标签中间的 text 文本定位元素
partial link text通过 text 标签中间的 text 文本的部分内容定位元素
tag name通过 tag 名称定位元素
xpath通过 xpath 表达式匹配元素

选择定位器通用原则

  • 与研发约定的属性优先 。

    • web 推荐 class。

    • android 推荐 content-description。

    • ios 推荐 label。

  • 身份属性 id,name(web 定位)。

  • 组合定位 xpath,css。

  • 其它定位。

元素定位不到

导致 Appium 元素定位不到的原因可能包括定位信息错误、元素未加载完成、元素隐藏或不可见、元素定位策略不准确、Appium 和应用程序版本不兼容以及设备连接或设置问题。要解决这些问题,需要确保定位信息正确、等待元素加载完成、使元素可见、选择合适的定位策略、确保版本兼容性以及正确配置和设置设备。

原因解决方案
定位不正确在定位工具中先测试定位表达式是否正确
存在动态 ID定位方式使用 css 或者 xpath 的相对定位
页面还没有加载完成添加死等验证,使用显式等待或隐式等待进行优化
页面有 iframe切换到 iframe 后定位
页面切换 window切换到对应窗口后定位
要定位元素为隐藏元素使用 js 操作该元素

混合定位的应用场景

  • 场景:

    • 属性动态变化(id,text)。

    • 重复元素属性(id,text,class)。

  • 解决:

    • 根据相对位置关系进行定位(css、xpath)(父级,子级,兄弟,索引)。

    • 使用 find_elements 遍历查找。

  • 参考高级定位技巧章节(xpath,css)。

使用等待机制的场景

  • 场景

    • 控件动态出现

    • 控件出现特定特征

  • 解决

    • 元素定位结合隐式等待与显式等待

特殊控件定位

Web 弹框定位
  • 场景

    • web 页面 alert 弹框

  • 解决:

    • web 需要使用 driver.switchTo().alert() 处理

App toast 提示框定位
  • 场景:

    • app Toast 提示框。

  • 解决:

    • 使用 driver.page_source 拿到页面布局结构文件,分析 Toast/弹框组件的标签内容。

    • 然后通过 id/text/class 等属性,使用 xpath 完成元素定位。

    • 结合隐式等待。

下拉框/日期控件定位
  • 场景:

    • <input>标签组合的下拉框无法定位。

    • <input>标签组合的日期控件无法定位。

  • 解决:

    • 面对这些元素,可以引入 JS 注入技术来解决问题。

文件上传定位
  • 场景:

    • input 标签文件上传。

  • 解决:

  • input 标签直接使用 send_keys() 方法。

总结

在选择定位策略时,需要考虑元素的属性、上下文以及应用的特定情况。有时候需要结合多个属性或使用相对定位,以确保定位的准确性和稳定性。此外,使用隐式等待或显式等待是确保元素加载完成的重要步骤,以避免定位超时的问题。

推荐学习

全栈开发与测试定向培养班,内容全面升级,可选择岗位更多,就业面更广。4 个月 30+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,0基础可学,带你一站式掌握测试开发必备核心技能!增加名企私教服务,针对性解决工作难题。直推 BAT 名企测试经理,简历指导+模拟面试+面试复盘,助你斩获更多Offer!

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门 带你从零基础/转行/小白/就业/ 测试用例设计实战 

【霍格沃兹测试开发】最新版!Web自动化测试从入门到精通/电子商务产品实战/Selenium(上集)

【霍格沃兹测试开发】最新版!Web自动化测试从入门到精通/电子商务产品实战/Selenium(下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/自动化测试/性能测试/精准测试/测试左移/测试右移/人工智能测试

【霍格沃兹测试开发】腾讯/百度/阿里/字节测试专家技术沙龙分享合集/精准化测试/流量回放/Diff

【霍格沃兹测试开发】Pytest用例结构/编写规范 /免费分享

【霍格沃兹测试开发】JMeter实时性能监控平台/数据分析展示系统Grafana/Docker安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/测试开发能力评级/1V1模拟面试实战/冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/要评级表格的联系我

【霍格沃兹测试开发】Pytest与Allure2一键生成测试报告/测试用例断言/数据驱动/参数化

【霍格沃兹测试开发】App功能测试实战快速入门/adb常用命令/adb压力测试

【霍格沃兹测试开发】阿里/百度/腾讯/滴滴/字节/一线大厂面试真题讲解,卷完拿高薪Offer!

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman做接口测试,从入门到实战/接口抓包(最新最全教程)

【霍格沃兹测试开发】6小时轻松上手功能测试/软件测试工作流程/测试用例设计/Bug管理

【霍格沃兹测试开发】零基础小白如何使用Postman,从零到一做接口自动化测试/从零基础到进阶到实战

【霍格沃兹测试开发】建议收藏全国CCF测试开发大赛Python接口自动化测试赛前辅导 /项目实战

新手专区--7小时入门软件测试

新手专区--接口测试入门到实战精通

面试专区--软件测试如何获得高薪?

提升专区--测试开发技能图谱

新手专区 -- 软件测试精品课教程合集

【软件测试教程】软件测试面试实战之软件测试用例编写(一)

【软件测试教程】面试必问的软件测试基本理论及概念

【软件测试教程】面试必会问到的软件测试用例基本理论及方法

【软件测试教程】大厂的软件测试体系是什么样的?

【软件测试教程】名企大厂软件开发流程案例分析

【软件测试教程】做软件测试必须要懂的软件开发流程

【软件测试教程】做测试必须要了解的最常用的几种软件开发模型

【软件测试教程】软件测试如何在面试中向HR要到更高的薪资?

【软件测试教程】如何根据招聘需求选择最值得入职的软件测试岗位?

【软件测试教程】一线互联网名企软件测试岗位招聘具体流程揭秘

【软件测试教程】BAT大厂软件测试简历拆解及细节分析

【软件测试教程】撰写软件测试简历时必须要注意的5个事项

【软件测试教程】能进入BAT一线互联网大厂的优质软件测试简历必须包含的7大板块

软件测试工程师简历面试教程攻略--如何写出能进BAT大厂测开岗的优质简历?如何在面试中向HR要到更高薪资?如何拿到更高级别的offer?--持续更新!

【软件测试教程】自动化测试入门-只能二维码登录,自动化测试怎么做?

【软件测试教程】Appium自动化测试-九宫格解锁

【软件测试教程】面试现写10个linux命令,写不出来怎么办(上)

【软件测试教程】面试现写10个linux命令,写不出来怎么办(下)

【软件测试教程】自动化测试-比fiddler更好用的抓包工具,你知道吗?

【软件测试教程】使用python如何去做接口自动化测试?

【软件测试教程】自动化测试-如何使用selenium自动发邮件

【软件测试教程】软件测试入门进阶-测试新人的如何学习更容易涨薪

【软件测试教程】学会这个技巧,测试用例设计完全无压力

【软件测试教程】Allure一节课学会生成业内最优秀的自动化测试报告

【软件测试教程】自动化测试-selenium grid 搭建分布式测试平台

【软件测试教程】零基础掌握接口测试神器postman

【软件测试教程】UI自动化的高级定位,你学会了吗?

【软件测试教程】自动化测试-pytest测试框架

【软件测试教程】自动化测试框架-pytest测试框架详解

【软件测试教程】接口测试用例应该如何设计

【软件测试教程】Appium自动化测试-实现企业微信自动打卡

【软件测试教程】软件测试入门进阶-面试官常问的adb命令

【软件测试教程】Python+Excel自动化管理测试用例

【软件测试教程】自动化测试神器-charles抓包工具的使用

【软件测试教程】Appium 企业微信自动打卡

【软件测试教程】性能测试核心攻略-性能监控数据展示

【软件测试教程】软件测试入门进阶-面试中的测试用例设计思路

【软件测试教程】软件测试入门进阶-面试必考的SQL核心知识

测试开发公开课

【软件测试教程】移动端自动化测试appium电商自动下单流程

【软件测试教程】移动端自动化appium安装避坑指南

【软件测试教程】零基础掌握接口测试神器postman

【软件测试教程】软件测试高薪成长路线

【软件测试教程】一节课!帮你搞定Appium环境安装

【软件测试教程】面试官让你现写10个Linux命令,怎么写?

【软件测试教程】小白也能快速上手的神器工具的monkey

【软件测试教程】高级测试开发工程师必会的算法

【软件测试教程】自动化测试碰到二维码登录怎么办

【软件测试教程】软件测试小白如何学习成长最快

【软件测试教程】面试官爱问的adb命令,你掌握了么?

【软件测试教程】高薪软件测试工程师成长路线

【软件测试教程】高级软件测试才会的数据库的进阶使用

【软件测试教程】面试现写sql查询语句

【软件测试教程】测试开发必会-自动化测试框架pytest

【软件测试教程】三十分钟搞定App性能测试

【软件测试教程】经典软件测试开发面试题冒泡排序

【软件测试教程】一节课搞定面试现场写软件测试用例

【软件测试教程】一节课掌握超好用的软件测试框架pytest

【软件测试教程】常用linux基础命令

【软件测试教程】测试平台开发入门之Vue基础语法实战

【软件测试教程】docker-compose管理多个容器

【软件测试教程】自动化测试pytest实战案例

【软件测试教程】面试官爱问的常用linux命令,你会了吗?

【软件测试教程】七行代码搞定web自动化测试

【软件测试教程】你不知道的JMeter的高级技巧

【软件测试教程】让面试官眼前一亮的自动化测试技巧

【软件测试教程】面试官常问的adb命令

【软件测试教程】一节课教你掌握经典面试题冒泡排序

【软件测试教程】管理测试环境必备工具Shell

【软件测试教程】面试加分的移动端自动化测试技巧-高级定位技巧

【软件测试教程】一节课入门BAT级别的测试开发知识点springboot

【软件测试教程】快速入门接口测试-接口项目落地

【软件测试教程】自动化测试必会-java数据驱动

【软件测试教程】数据库必会技能-面试现写sql查询语句

【软件测试教程】3分钟搭建各种测试常用网站

【软件测试教程】自动化测试必会-python面向对象

【软件测试教程】面试现写sql查询语句写不出来怎么办

【软件测试教程】面试官问java如何读写文件,你怎么回答

【软件测试教程】Java测试平台开发入门篇之vue基础语法实战

接口测试入门到实战精通

【软件测试教程】测开必备工具mitmproxy

【软件测试教程】雪球app抓包与mock实战(一)

【软件测试教程】雪球app抓包与mock实战(二)

【软件测试教程】雪球app抓包与mock实战(三)

【软件测试教程】软件测试、开发工程师必备工具curl

【软件测试教程】session、cookie、token区别

【软件测试教程】get、post区别实战详解

【软件测试教程】结构化请求体构造JSON XML

22:49【软件测试教程】结构化响应断言JSON XML

【软件测试教程】一节课入门BAT级别的测试开发知识点springboot

【软件测试教程】性能测试压测实战-JMeter+InfluxDB+Grafana压测数据展示

【软件测试教程】高级软件测试必备-管理测试环境必备工具Shell

【软件测试教程】软件测试核心干货-面试中测试用例设计思路

【软件测试教程】软件测试面试实战-面试现写sql查询语句写不出来怎么办

【软件测试教程】零基础学测试如何比别人更快拿到好的offer

【软件测试教程】零基础掌握接口测试神器postman

【软件测试教程】移动端自动化测试-Appium环境入门

【软件测试教程】移动端自动化测试-使用APPIUM实现电商APP下单流程

【软件测试教程】教你高级测试才会的日志分析方法

【软件测试教程】软件测试数据库-面试现写sql查询语句写不出来怎么办

【软件测试教程】测试开发必备-移动端自动遍历工具

【软件测试教程】高级测试开发教程-Docker一条命令搭建测试流程管理环境

【软件测试教程】软件测试高薪秘籍-零基础学测试如何比别人拿到更高薪的offer

【软件测试教程】自动化测试教程-经典面试题java多线程你熟悉吗?

【软件测试教程】软件测试用例设计

【软件测试教程】高级性能测试数据展示

【软件测试教程】高级软件测试开发-面试官都喜欢问的高级定位原理你知道吗

【软件测试教程】appium移动端自动化测试实现电商app下单流程

【软件测试教程】自动化测试必备-面试官问java如何读写文件,你怎么回答

【软件测试教程】1小时快速入门接口测试

【软件测试教程】接口测试必会-charles抓包神器

【软件测试教程】软件测试开发持续集成利器-jenkins快速上手

【软件测试教程】自动化测试如何提高可维护性

【软件测试教程】自动化测试-Python与经典面试题手写冒泡排序

【软件测试教程】软件测试数据库专题-面试现写sql查询语句写不出来怎么办

【软件测试教程】性能测试入门实战

【软件测试教程】软件测试之shell实战项目-实现脚本抽奖小程序

【软件测试教程】软件测试实战项目系列-老板让我自己组建测试流程

【软件测试教程】软件测试必备Linux入门基础

【软件测试教程】自动化测试基础教程-如何使用自动化工具投简历

【软件测试教程】帮你搞定自动化测试平台与兼容性测试-stf平台

【软件测试教程】接口测试教程-15分钟建造接口测试环境

【软件测试教程】高级性能测试-JMeter+InfluxDB+Grafana压测数据展示

【软件测试教程】Java自动化测试平台开发入门篇之初识springboot

【软件测试教程】web自动化测试框架selenium-UI自动化测试如何绕过二维码登录

【软件测试教程】自动化测试入门教程-pytest测试框架

【软件测试教程】自动化测试教程-三剑客之awk

【软件测试教程】httprunner使用HttpRunner高效实现接口测试自动化

【软件测试教程】移动端自动化测试-Appium环境搭建及入门

【软件测试教程】APP自动化测试-移动端自动遍历工具

【软件测试教程】搞定软件测试数据库-mysql查询思维训练

【软件测试教程】自动化测试入门教程-python分支结构和循环结构

【软件测试教程】自动化测试入门教程-python模块与输入输出

【软件测试教程】零基础自学-大厂的软件测试体系

【软件测试教程】零基础自学-快速搞定接口测试

【软件测试教程】软件测试零基础自学教程-linux系统 与shell环境准备

【软件测试教程】测试开发必会-Docker基础

【软件测试教程】自动化测试入门教程-Java基础数据驱动

【软件测试教程】Java测试平台开发入门篇之vue基础语法实战

【软件测试教程】搞定自动化测试-java数据驱动

【软件测试教程】接口测试入门教程-HttpRunner

【软件测试教程】自动化测试教程-Xpath

【软件测试教程】自动化测试教程-Linux基础命令

【软件测试教程】自动化测试教程-Linux三剑客

【软件测试教程】自动化测试教程-pageobject企业微信实战

【软件测试教程】自动化测试与兼容性测试平台-stf平台

【软件测试教程】APP自动化测试-appium原理解析与九宫格解锁

【软件测试教程】接口测试教程-httprunner的基础使用

【软件测试教程】MySQL数据库基本增删改查与多表查询

【软件测试教程】自动化测试教程-Linux基础

【软件测试教程】自动化测试教程-jenkins快速上手

【软件测试教程】软件测试教程-mysql数据库环境搭建与表结构创建修改操作

【软件测试教程】PO设计模式在手机自动化测试中的应用

【软件测试教程】自动化测试入门教程-seleniumIDE录制以及常用api

【软件测试教程】web自动化测试入门-cookie

【软件测试教程】软件测试进阶-Shell基础

【软件测试教程】Python自动化测试入门-python字符串数据结构

【软件测试教程】自动化测试必会教程-pageobject

【软件测试教程】web自动化测试selenium高级用法-CssSelector

【软件测试教程】移动端app自动化测试-Appium环境搭建及入门

【软件测试教程】高级自动化测试必备-python函数与模块

【软件测试教程】接口测试入门实战-基于企业微信api进行接口测试

【软件测试教程】自动化测试selenium高级用法-xpath定位

【软件测试教程】软件测试数据库必备-mysql查询

【软件测试教程】自动化测试必会-python条件、循环表达式

【软件测试教程】接口测试工具之charles高级用法代理抓包+数据篡改

【软件测试教程】高级自动化测试入门-selenium基础

【软件测试教程】Java自动化测试平台初识springboot

【软件测试教程】名企的软件开发流程是怎样的

【软件测试教程】Java 自定义注解 模拟数据驱动

【软件测试教程】安全测试专家邀你在线实操转帐安全

【软件测试教程】高级软件测试开发服务集群架构docker+k8s

【软件测试教程】利用Jenkins自己搞定测试环境自动发布

【软件测试教程】自动化测试平台与兼容性测试-STF多设备管理平台

【测试教程】亿级流量App项目管理攻略

【测试教程】真实金融安全问题解析,近距离接触安全测试

【测试教程】移动自动化入门之路+成长路径

【测试教程】appium元素定位+测试报告

【测试教程】软件测试HR教你谈薪资

【测试教程】如何高效率交付测试工作

【测试教程】用Python做自动化测试-数据分析

【测试教程】前端渲染时长的统计方案-

【测试教程】APP自动化测试 Page Object实战-思寒

【测试教程】测试质量体系建设实践方法

【测试教程】利用Jenkins自己搞定测试环境自动发布

【测试教程】appium入门-九宫格解锁

【测试教程】Linux三剑客实战--shell经典面试题大解密

【测试教程】从质量保障体系引发的测试管理思考

【测试教程】接口自动化测试体系构建

【测试教程】软件测试简历指导-让你的简历会说话

【测试教程】性能测试与性能分析的价值体现

【测试教程】性能分析大师如何给出关键论据分析需求

【测试教程】移动自动化测试中的小技巧

【测试教程】接口测试公开课(二)-数据驱动

【测试教程】一节课教你将性能分析报告做的有颜又有料

【测试教程】Linux三剑客进阶

【APP自动化测试教程】使用Page Object设计模式提高自动化测试脚本的可维护性

接口测试

【接口测试】rest-assured高级进阶-对接口时间进行断言、导出数据【软件测试】

【接口测试】rest-assured高级进阶-发送json请求【软件测试】

【接口测试】断言机制实战演练-2【软件测试】

【接口测试】断言机制实战演练-1【软件测试】

【接口测试】断言机制基础讲解【软件测试】

【接口测试】移动端代理抓包-数据拦截与修改实战演练【软件测试】

【接口测试】移动端代理抓包-数据拦截与修改方法教学【软件测试】

【接口测试】Charles高阶项目实战演练【软件测试】

【接口测试】Charles拦截请求和拦截响应【软件测试】

【接口测试】Charles的重要特性【软件测试】

【接口测试】Burpsuite重要特性【软件测试】

【接口测试】Curl常见用法及代理工具分析【软件测试】

【接口测试】HTTP协议组成及客户端模拟请求工具【软件测试】

【接口测试】HTTP协议-代理工具抓包和篡改结果【软件测试】

【接口测试】接口测试--协议分析工具【软件测试】

【接口测试】接口测试常见的协议【软件测试】

【接口测试】接口测试的意义与入门基础【软件测试】

【软件测试】接口测试入门到实战精通-协议、框架、持续集成、断言、运行与维护-教你如何从零开始搞定接口测试

【软件测试】java语言rest-assured框架进行接口测试实战

【测试教程】软件测试工程师高段位进阶之路

【测吧】软件测试开发BAT一线名企面试指南-小白慎点-(霍格沃兹测试学院)

【测吧】软件测试工程师如何拿到P5-P7高薪offer?

【测吧】1、2019年软件测试行业形势分析

【测吧】2、BAT一线名企软件测试职位解析

【测吧】3、百度、阿里软件测试面试题解析

【测吧】4、如何获取一线名企软件测试岗位内推?

【测吧】5、软件测试行业2018年度调查报告

【测吧】6、如何撰写优秀的个人技能-软件测试简历

【测吧】7、如何展示丰富的项目经验-软件测试简历

【测吧】8、如何写出一份完整的简历-软件测试简历

【测吧】9、解读百度质量部胜任力模型-软件测试技能图谱

【测吧】10、不同level软件测试工程师应具备的基本能力

【测吧】11、软件测试工程师技术背后的寓意

【测吧】12、软件测试工程师如何持续增强自己的技术水平?

【测吧】13、一线大厂软件测试面试必问的3个问题

【测吧】14、BAT+TM3经典软件测试面试题剖析

【测吧】15、一线名企软件测试面试必考的领域知识

【测吧】16、软件测试面试常见不通过的原因

【测吧】7小时入门软件测试

1.【测吧】软件测试基本概念-【7小时入门软件测试】

2.【测吧】软件测试阶段的测试流程-【7小时入门软件测试】

3.【测吧】软件测试技术分类讲解-【7小时入门软件测试】

4.【测吧】软件测试常见问题解答-【7小时入门软件测试】

5.【测吧】面向服务的接口测试体系-【7小时入门软件测试】

6.【测吧】软件测试开发-研发阶段的质量保证(测试左移)-【7小时入门软件测试】

7.【测吧】测试开发-发布后的质量监控(测试右移)-【7小时入门软件测试】

8.【测吧】软件测试技术体系图谱-【7小时入门软件测试】

9.【测吧】企业招人标准--软件测试高薪秘诀-【7小时入门软件测试】

10.【测吧】如何写好简历--软件测试高薪秘诀-【7小时入门软件测试】

11.【测吧】面试技能技巧--软件测试高薪秘籍-【7小时入门软件测试】

12.【测吧】真实案例分析--软件测试高薪秘籍-【7小时入门软件测试】

【测吧】2019年软件测试职业发展公开课(五)

【测吧】兼容性软件测试与自建测试实验室(中)

【测吧】软件测试入门-互联网测试流程和技术体系(上)

【测吧】软件测试入门-互联网测试流程和技术体系(下)

【测吧】面试官最爱问的兼容性软件测试

【测吧】Junit结合下一代测试报告框架Allure2

【测吧】如何从零开始高效的做好兼容性软件测试

【测吧】手机浏览器、webview、微信小程序自动化软件测试

【测吧】2019软件测试行业调查报告解读

【测吧】BAT软件测试岗位面试要点剖析+简历点评

【测吧】面试BAT软件测试开发,你需要具备哪些技能?

 

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值