Detox:如何测试多行 TextInput

2024-01-25

我正在尝试使用排毒来测试我的反应本机应用程序中的表单。

表单中的输入之一有multiline={true}.

我正在尝试运行以下测试:

const inputElement = element(by.id('input_multiline'));
await expect(inputElement).toBeVisible();
await inputElement.typeText('line1\n');
await inputElement.typeText('line2\n');
await inputElement.typeText('line3\n');

const submitElement = element(by.id('submit'));
await submitElement.toBeVisible();
await submitElement.tap();

此测试未能通过 75% 可见性标准,因为键盘隐藏了提交按钮。

通常对于 TextInput 来说multiline={false}你可以只附加\n到输入字符串自动移动到下一个阶段,但对于多行输入\n只是添加了一个新行。

我该怎么做才能通过这项排毒测试?


首先我们需要能够关闭 TextInput 的键盘multiline={true}.

为此,我们将使用react-native 的键盘模块。

import {Keyboard} from 'react-native'

现在用 TouchableWithoutFeedback 包裹您的表单并在按下时调用 Keyboard.dismiss() 。

<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
  { /* your form goes here */ }
</TouchableWithoutFeedback>

现在修改您的排毒测试以关闭键盘。

const inputElement = element(by.id('input'));
await expect(inputElement).toBeVisible();
await inputElement.typeText('line1\n');
await inputElement.typeText('line2\n');
await inputElement.typeText('line3\n');
// click somewhere outside the input
await inputElement.tapAtPoint({x: 0, y: 1});

const submitElement = element(by.id('submit'));
await submitElement.toBeVisible();
await submitElement.tap();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Detox:如何测试多行 TextInput 的相关文章

  • React-Native 本机 Android 模块 - Toast 示例

    我正在尝试学习使用 android 本机模块并使用react native 文档中的 toast 示例 https facebook github io react native docs native modules android ht
  • 如何从 React Navigation 获取之前的路线名称

    我正在尝试将以前的路线名称获取到当前屏幕 因为根据之前的屏幕名称 我必须在当前屏幕中显示 隐藏一些对象 为了获取以前的屏幕名称 我尝试过以下操作 componentDidMount const navigation this props i
  • React Native 中的动画背景颜色

    我将如何在 React Native 中将一种颜色动画化为另一种颜色 我发现通过插入 Animated Value 您可以通过以下方式对颜色进行动画处理 var BLACK 0 var RED 1 var BLUE 2 background
  • React-Native 中的应用程序状态不会删除侦听器

    我通过以下方式添加了侦听器 尝试同时放入构造函数和 componentDidMount AppState addEventListener change this handleAppStateChange 并在 componentWillU
  • Metro 遇到错误:尝试解析模块“firebase”时

    启动模拟器后出现此错误 我在图像下添加代码并在终端上出错 这是我的 App js 文件模拟器上的错误图像 https i stack imgur com pffip png 错误 错误 尝试解析模块时firebase从文件 Users ca
  • 是否有正确的方法将 useNavigation() 挂钩与 useEffect() 依赖项一起使用?

    我正在尝试使用 useNavigation 挂钩与反应导航交互 以响应我在 useEffect 中注册的回调 linter 警告我 useEffect 缺少依赖项 如果我将导航挂钩添加为依赖项 则效果会持续运行 我试图避免这种情况 并想知道
  • 类型错误:未定义不是对象(正在评估..)

    在 render 之前的控制台中 this state data1 length 没有给出任何错误 但是一旦我在视图标签中使用它 就会给出错误 类型错误 未定义不是对象 评估 this state data1 length 如果我从视图标签
  • 如何使用多重身份验证 - firebase?

    我有一个注册屏幕 其中包含 用户名 电子邮件 电话号码 密码 在本例中 我使用电话号码身份验证来验证号码 因此在用户验证他的号码后 我将他的数据保存到 firebase DB 中 所以在那之后 我将下摆导航到登录屏幕 应该包含电子邮件 密码
  • 在 Flex 中,React Native 会溢出

    因此 对于上面的图像 我试图让 绿色 框包围动态文本 请注意蓝色和黄色文本框是如何在flex row 配置 蓝色文本框位于flex 2黄色是flex 1 一切工作正常 直到文本对于父容器来说太大 我希望绿色容器能够根据需要生长以适应弯曲的内
  • 如何在每个测试中更改笑话模拟函数的返回值?

    我的组件测试文件中有一个像这样的模拟模块 jest mock magic index gt navigationEnabled gt true guidanceEnabled gt true 这些函数将在我的组件的渲染函数中调用 以隐藏和显
  • 图像未使用 require 加载本地文件

    我想加载本地图像 但是使用 require 方法它总是给我错误 在这种情况下我如何在 require 中传递 this props image my code Card js 我试过这个 class Card extends Compone
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • Animated.Event 在 React Native 中如何工作?

    我理解正确吗 这两套代码的意思是一样的吗 在性能或者可靠性上有什么区别吗
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • Windows C++ 中的键盘钩子还是什么?

    我希望构建自己的应用程序 它可以将键盘命令 消息 发送到 Windows 操作系统 例如 当我按下组合键 ctrl shift n 时 我希望启动 notepad exe 我怎样才能做到这一点 您对所使用的概念有什么建议吗 我读过 何时使用
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 如何从react-native webview获取选择对象

    我有一个应用程序 我使用反应本机 webview 来显示文档 用户可以选择一些文本并执行我提供的一些自定义操作 如何从 webview 获取选择对象into my app 从 0 37 0 开始 RN 中的一个新功能可能会对您有所帮助 里面
  • F10键没被抓住

    I have a Windows Form and there overriden ProcessCmdKey However this works with all of the F Keys except for F10 I am tr
  • React Native 上的文本缩进

    我需要缩进 React Native 段落的第一行 但使用常见的csstext indent财产 textIndent 与 React Native 不兼容 伪元素选择器也不兼容 例如 first line 有什么方法可以做到这一点而不用将

随机推荐

  • 如何删除MenuStrip子菜单边距?

    您知道如何删除 MenuStri 中子菜单的边距 可能是左右图像和复选框的边距 吗 在MSDN 文章 http msdn microsoft com en us library ms229638 aspx解释了如何从上下文菜单中删除它 据记
  • WooCommerce 变体中的自定义字段

    我正在尝试找到在前端获取自定义字段变化数据的解决方案 我不知道如何在更改变体产品的列表框时获取变体 id 例如可变产品的颜色包含红色 蓝色 绿色 我为所有颜色组合添加了自定义字段 这是我尝试过的代码 source http www remi
  • 日期时间格式 3 个字母月份

    下面的代码返回此格式的日期 21 03 2014 我们需要它以这种格式返回日期 21 MAR 2014 三字母文字名称 当前时间很好 但并不重要 需要做出哪些改变 function onOpen var ui DocumentApp get
  • 在 ASP.NET 中使用 Live Connect API 检索用户的电子邮件地址

    所以我对 ASP NET MVC 和 Windows Live Connect API 相当陌生 基本上我正在尝试将实时登录集成到我的网站中 当用户登录时 Live 请求他们允许向我的应用程序提供某些信息 将用户发送到我的应用程序设置中指定
  • 按位运算是否可以帮助我序列化一些布尔值?

    我不习惯二进制文件 我正在尝试掌握它 我设法存储了一些整数和无符号字符 并轻松地读取它们 现在 当我尝试保存一些布尔值时 我发现每个布尔值在文件中都占用了 1 个八位字节 这似乎是合乎逻辑的 因为单独的布尔值存储在字符大小的数据中 如果我错
  • 将加载配置添加到asp.net core中的注入依赖项中

    在我的 Asp Net Core API 中 我使用 Startup cs 中的 services AddTransient 方法注入一些存储库类 services AddTransient
  • 在 iOS 中,使用 CGPDFDocumentRef,为什么我的 PDF 显示大边距而不是整个页面? [复制]

    这个问题在这里已经有答案了 可能的重复 如何让pdf页面适合整个视图 https stackoverflow com questions 4321681 how to fit pdf page in entire view 我毫无问题地显示
  • 在拾色器调色板中更新新颜色

    我安装了一个 jQuery 插件颜色选择器 colpick js 但我不知道如何 设置调色板中圆形图标的新颜色 刷新页面后 元素的背景发生更改 但调色板中的圆形图标仍处于默认颜色区域color 003a7d 它没有更新 但是 颜色选择器和
  • MySQL 每 4 行平均值

    我有一个超过 1000 万行的表 如下所示 id time read value 9 1111111111 100 9 1111111222 200 9 1111111333 150 9 1111111444 225 我想要平均每 4 行的
  • 如何检查 IsNumeric [重复]

    这个问题在这里已经有答案了 可能的重复 如何判断字符串中是否包含数字 https stackoverflow com questions 894263 how to identify if string contain a number V
  • v-text-field textarea默认高度改变?

    我正在使用 v text filed 其中我正在使用 textarea 我想更改文本区域的默认高度并使其变小 是否有可能做到这一点
  • 模拟 HTTP 响应以测试 Node.js HTTP 客户端

    如何模拟 HTTP 响应来测试应用程序 我想做的是模拟 HTTP 响应来测试 HTTP node js 客户端 有什么我可以用的东西吗fakeweb https github com chrisk fakeweb但是对于node js 为什
  • Android WebView 使用 GeolocationPermissions

    我在这里查看了有关此问题的各种问题 例如 在 Android 2 0 上的 WebView 中使用 navigator geolocation getCurrentPosition PhoneGap 相关 https stackoverfl
  • 如何在 Pystray 中创建菜单和更新图标

    我想用pystrayPython 中的模块用于在 Windows 上创建系统托盘应用程序 Code 到目前为止 我设法写了这个 import pystray from PIL import Image image Image open im
  • Parcelable 对象列表的 Parcel 列表

    所以我之前已经打包过列表 但是我正在尝试打包我的GameBoard对象 它实际上有一个List
  • 在哪里可以找到 Google 协作平台的自定义主题 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在尝试为 Google 协作平台网站创建自定义背景主题 不久前 我做了一些谷歌搜索 发现一些网站带有背景图像以及如何更改表格尺寸以创建谷歌网站 m
  • 当在 JQuery Slider 上添加 -webkit-线性梯度 时 -moz-线性梯度 中断

    TL DR webkit 线性梯度正在破坏 moz 线性梯度 所以 这是一个难题 我正在使用带有两个手柄的 Jquery Slider 插件 并且我有一个渐变作为背景颜色 为外部范围提供一些颜色 我想做的是当滑块移动时更新渐变的百分比 它适
  • 删除打开的 TCP 连接而不发送 RST

    调查nginx 忽略一些没有正确主机标头的请求 https stackoverflow com questions 39647668 nginx ignore some requests without proper host header
  • C# 中的“this”是什么意思

    谁能解释一下 C 中 this 的含义吗 Such as complex cs using System public struct Complex public int real public int imaginary public C
  • Detox:如何测试多行 TextInput

    我正在尝试使用排毒来测试我的反应本机应用程序中的表单 表单中的输入之一有multiline true 我正在尝试运行以下测试 const inputElement element by id input multiline await ex