如何在屏幕外使用 React Native TextInput 执行动作 typeText()(位置:绝对,右:-99)
Posted
技术标签:
【中文标题】如何在屏幕外使用 React Native TextInput 执行动作 typeText()(位置:绝对,右:-99)【英文标题】:How to exec action typeText() with React Native TextInput outside screen (position: absolute, right: -99) 【发布时间】:2018-07-16 05:05:14 【问题描述】:我在屏幕外有 TextInput,样式为 position: 'absolute', right: -99, 当我调用 action typeText() 时,我收到此错误
“错误:错误:由于约束失败而无法执行操作。 操作异常: “动作名称”:“点击”, “元素描述”:“”, “失败的约束”:“可交互的”, "所有约束" : "(!(isSystemAlertViewShown) && ((respondsToSelector(isAccessibilityElement) && isAccessibilityElement) || kindOfClass('UIView')) && (启用 && !(((kindOfClass('UIView') || respondsToSelector (accessibilityContainer)) && 祖先ThatMatches(!(启用))))) && 可交互的)", “恢复建议”:“调整元素属性,使其匹配失败的约束。”
[ "Description" : "由于约束失败,无法执行操作。", “错误域”:“com.google.earlgrey.ElementInteractionErrorDomain”, “错误代码”:“1”, “文件名”:“GREYBaseAction.m”, “函数名称”:“-[GREYBaseAction 满足约束条件:错误:]”, “线”:“66” ] " 我如何在屏幕外使用 React Native TextInput 执行动作 typeText()
【问题讨论】:
排毒:5.8.1 - 节点:8.4.0 - RN:0.47.2 - ios:10.3.1 - Xcode:9.2 【参考方案1】:为了让 Detox 与元素交互,元素需要通过可见性标准。我认为标准是 75% 的可见度。
detox/docs/Introduction.WritingFirstTest.md
请注意,可见性匹配器确保元素在屏幕上实际可见(准确地说,至少是 75%)。如果它出现在折叠下(例如,用户必须滚动才能看到它),这个特定的匹配器将失败。
所以总而言之,当输入字段在屏幕之外时,我看不到如何输入文本。
【讨论】:
以上是关于如何在屏幕外使用 React Native TextInput 执行动作 typeText()(位置:绝对,右:-99)的主要内容,如果未能解决你的问题,请参考以下文章
react-native-navigation如何在`shouldComponentUpdate`中检测当前屏幕
如何使用搜索文本输入(expo、react-native)在屏幕上显示项目
我如何在 React-Native 中使用 agora 视频通话共享手机屏幕
React-Native-Video 如何在视频未全屏或不在屏幕时暂停视频