Ant*_*ni4 11 ios ios-simulator react-native detox
我正在使用来自react-native的Alert.
如何通过警报消息按"退出"按钮进行排毒?
我试过用 await element(by.text('Log out')).tap();
但我得到"多个元素匹配"的错误.据推测,它找到3个具有相同标签的元素.带有标签"Log out"的原始按钮用于触发警报消息,警报消息标题和我想排毒按下的警报消息按钮.
Error Trace: [
{
"Description" : "Multiple elements were matched: (
"<UILabel:0x7fe7964db910; AX=Y; AX.label='Log out'; AX.frame={{41, 234}, {238, 20.5}}; AX.activationPoint={160, 244.25}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{16, 20}, {238, 20.5}}; opaque; alpha=1; UIE=N; text='Log out'>",
"<UILabel:0x7fe7964dda90; AX=Y; AX.label='Log out'; AX.frame={{198.5, 322.5}, {58, 20.5}}; AX.activationPoint={227.5, 332.75}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 12}, {58, 20.5}}; opaque; alpha=1; UIE=N; text='Log out'>",
"<RCTText:0x7fe79652f300; AX=Y; AX.label='Log out'; AX.frame={{16, 338.5}, {288, 17}}; AX.activationPoint={160, 347}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {288, 17}}; alpha=1>"
). Please use selection matchers to narrow the selection down to single element.",
"Error Domain" : "com.google.earlgrey.ElementInteractionErrorDomain",
"Error Code" : "5",
"File Name" : "GREYElementInteraction.m",
"Function Name" : "-[GREYElementInteraction grey_errorForMultipleMatchingElements:withMatchedElementsIndexOutOfBounds:]",
"Line" : "956"
}
]
Run Code Online (Sandbox Code Playgroud)
我想有一种方法是使用.atIndex(),但这意味着我需要在每次更改某些内容时使用索引来确定正确的元素.
有没有更好的方法来解决这个问题?
谢谢.
Ant*_*ni4 18
经过一些修修补补后,我最终使用了这个:
await element(by.label('Log out').and(by.type('_UIAlertControllerActionView'))).tap();
Run Code Online (Sandbox Code Playgroud)
不确定这是否适用于每个iOS版本,但似乎适用于10.3和11.1
它应该可以通过文本查找元素
await element(by.text('Log out')).tap();
Run Code Online (Sandbox Code Playgroud)
演示仓库:https : //github.com/FDiskas/demonas/blob/c703840a991b2f3d96a18ac8c5120ee1d5f901f8/e2e/firstTest.spec.ts#L11
| 归档时间: |
|
| 查看次数: |
2497 次 |
| 最近记录: |