求助:Rhino JS中动态获取不同UI选项下重发邮箱OTP的选择值
动态获取不同UI组中“向用户邮箱重发OTP”的选择值
问题背景
存在两组UI输入选项:
- 选项1(含重发按钮)
Index 0 - Enter otp password Index 1 - Cancel Option Index 2 - Resend OTP. Index 3 - Resend OTP to user email - 选项2(无重发按钮)
Index 0 - Enter otp password Index 1 - Cancel Option Index 2 - Resend OTP to user email. Index 3 - Regenerate OTP
需要动态获取“Resend OTP to user email”对应的用户选择值(yes/no),但无法预先知道用户使用的是哪一组UI。
解决方案
方案1:通过选项文本匹配目标元素(推荐)
直接遍历所有UI元素,匹配目标选项的文本内容,无需依赖固定索引,兼容性最强。
var targetOptionText = "Resend OTP to user email"; var selectedValue = null; // 遍历callResponse中的所有UI元素 for (var i = 0; i < callResponse.size(); i++) { var currentElement = callResponse.get(i); // 注意:根据实际API调整获取选项文本的方法(此处假设为getText()) if (currentElement.getText().trim() === targetOptionText.trim()) { selectedValue = currentElement.getSelectedIndexes()[0]; break; // 找到目标后终止遍历 } } // 后续处理selectedValue(比如判断yes/no) if (selectedValue !== null) { // 执行业务逻辑 }
方案2:通过特征选项判断UI组类型
利用两组UI的差异特征(选项1存在“Resend OTP.”,选项2不存在),先判断所属组,再使用对应索引。
var selectedValue; var isOption1 = false; // 检查是否存在选项1的特征元素 for (var i = 0; i < callResponse.size(); i++) { if (callResponse.get(i).getText().trim() === "Resend OTP.") { isOption1 = true; break; } } // 根据UI组选择对应索引获取值 if (isOption1) { selectedValue = callResponse.get(3).getSelectedIndexes()[0]; } else { selectedValue = callResponse.get(2).getSelectedIndexes()[0]; }
方案3:容错式索引尝试(备选)
如果UI元素数量固定为4个,可以先尝试选项1的索引,失败后回退到选项2的索引。这种方法依赖UI结构稳定,不推荐作为首选。
var selectedValue; try { // 优先尝试选项1的索引3 selectedValue = callResponse.get(3).getSelectedIndexes()[0]; } catch (error) { // 索引3不存在时,尝试选项2的索引2 selectedValue = callResponse.get(2).getSelectedIndexes()[0]; }
内容的提问来源于stack exchange,提问作者Karan Nayyar
相关产品推荐
相关产品推荐

