当前位置: 首页 > 知识库问答 >
问题:

如何将testID和accessibilityLabel与React Native一起设置?

程昕
2023-03-14

我在为我的React本机应用程序设置testID和accessibilityLabel时遇到了一个奇怪的问题,其目的是让Appium Inspector(Appium Desktop)可以看到iOS和Android应用程序上的“accessibility id”,问题如下:

  1. 如果testID是设置在一起的辅助标签,iOS的应用程序不显示"辅助ID"的组件,但android的应用程序。
  2. 如果我只设置了testID,iOS应用程序正确显示组件中的可访问性ID,但对于android来说,组件中缺少可访问性ID。
  3. 如果我只设置了可访问性标签,Android应用程序正确显示可访问性标识,但iOS应用程序丢失。

这是我的密码

export enum TestID {
  ImageLogo = 'ImageLogo'
}

export const LogoComponent: React.FC = () => {
  return (
    <Image
      testID={TestID.ImageLogo}
      accessibilityLabel={TestID.ImageLogo}
    />
  );
};

此外,我还尝试将可访问属性设置为false/true,但没有成功。我使用的React本机版本如下:

"react": "16.13.1",
"react-native": "0.63.2",

共有2个答案

宗冠宇
2023-03-14

升级到React Native 0.64-它在Android上对testID有适当的支持。请注意,因为Android上的testID映射到View的resource-id,Appium要求您的testID以资源ID的规范样式格式化:

在我们的应用程序中,我们对测试ID执行以下操作:

<Text testID="test:id/hello-text">Hello</Text>

如果您正在使用wd库与appium对话,那么您可以执行以下操作:

await driver.elementById("test:id/hello-text")

茹建茗
2023-03-14

尝试对组件使用以下testID:

export default function testID(id) {
  return Platform.OS === 'android'
    ? { accessible: true, accessibilityLabel: id }
    : { testID: id }
}

<Text {...testID('hello-text')} >hello world</Text>
 类似资料:
  • 问题内容: 如何在ReactNative中水平和垂直居中放置文本? 我在rnplay.org中有一个示例应用程序,其中 justifyContent =“ center” 和 alignItems =“ center” 不起作用:https : **//rnplay.org/apps/AoxNKQ** 文本应居中。为什么在文本(黄色)和父容器之间的顶部留有空白? 码: 问题答案: 从‘样式删除,和

  • 我使用fetch获取数据,我想用chart.js显示它,而不是显示数据。我错在哪里?如果你帮忙我会很高兴的 我的代码在下面

  • 我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。

  • 我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理

  • 我正在尝试将composer与我的WampServer一起使用。 我所有文件的路径都是,但当我运行composer时,它会将供应商文件和其他东西安装到其他地方。 我甚至不知道我的项目在哪里,我也不能改变我的项目在哪里的路径。我已经尝试了所有的方法,但它似乎仍然没有在我的项目文件夹中安装供应商文件。

  • API level 28和Google建议使用registerNetworkCallback(NetworkRequest,PendingIntent)不推荐CONNECTIVITY\u操作。 我尝试使用ConnectionManager注册了registerNetworkCallback。NetworkCallback和它的工作,但我想使用PendingContent。 让我困惑的是公共空寄存器