【发布时间】:2021-07-29 19:31:00
【问题描述】:
我们正在使用带有电话身份验证的 Firebase UI,但 Robo Script 似乎无法正常使用它。像 LG Nexus 5、API 级别 23 锤头这样的设备在脚本的某些部分之后工作正常,但我们尝试的许多其他物理设备在脚本之后都失败了。
这是使用 Firebase Auth 和 LG Nexus 5 的成功 OTP
带有 Robo 脚本的非工作物理设备的列表还在继续,不确定 Nexus 5 有什么特别之处,或者可能与屏幕分辨率有关?我注意到的一件事是在将 9876543210 放入 Firebase UI 电话的 EditText Auth 之后,使用 Robo Script 的测试设备总是无法单击 Verify Phone Number 按钮,其中最有可能发生错误,除了 LG Nexus 5 成功执行了这部分脚本。
另一个样本
在这里它应该在成功将9876543210 放入基于我们的 Robo 脚本的 EditText 后点击 Verify Phone Number 按钮,但它没有,整个输入被替换为 6504992804,我们从未记录过,而不是在 Robo脚本。所以我们的结论是错误通常是由于脚本未能满足Verify Phone Number按钮的点击而发生的。
Robo 脚本示例
[
{
"eventType": "DELAYED_MESSAGE_POSTED",
"timestamp": 1627584568123,
"actionCode": -1,
"delayTime": 7000,
"canScrollTo": false,
"elementDescriptors": []
},
{
"eventType": "VIEW_TEXT_CHANGED",
"timestamp": 1627584581148,
"replacementText": "9876543210",
"actionCode": -1,
"delayTime": 0,
"canScrollTo": true,
"elementDescriptors": [
{
"className": "com.google.android.material.textfield.TextInputEditText",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 0,
"resourceId": "com.devsbitwise.cryptonian:id/phone_number",
"contentDescription": "",
"text": ""
},
{
"className": "android.widget.FrameLayout",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 0,
"resourceId": "",
"contentDescription": "",
"text": ""
},
{
"className": "com.google.android.material.textfield.TextInputLayout",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 1,
"resourceId": "com.devsbitwise.cryptonian:id/phone_layout",
"contentDescription": "",
"text": ""
}
]
},
{
"eventType": "VIEW_CLICKED",
"timestamp": 1627584599899,
"replacementText": "Verify Phone Number",
"actionCode": -1,
"delayTime": 0,
"canScrollTo": true,
"elementDescriptors": [
{
"className": "com.google.android.material.button.MaterialButton",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 2,
"resourceId": "com.devsbitwise.cryptonian:id/send_code",
"contentDescription": "",
"text": "Verify Phone Number"
},
{
"className": "androidx.constraintlayout.widget.ConstraintLayout",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 0,
"resourceId": "",
"contentDescription": "",
"text": ""
},
{
"className": "android.widget.ScrollView",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 1,
"resourceId": "",
"contentDescription": "",
"text": ""
}
]
},
{
"eventType": "DELAYED_MESSAGE_POSTED",
"timestamp": 1627584605228,
"actionCode": -1,
"delayTime": 500,
"canScrollTo": false,
"elementDescriptors": []
},
更新
最后剩下的问题可能是一致性,这里我在第一次测试中使用了相同的 Robo 脚本,但在第二次测试中完全没有更改代码,它失败了。
【问题讨论】:
标签: android firebase firebase-test-lab