有没有办法在 Detox 中记录找到的值?

Posted

技术标签:

【中文标题】有没有办法在 Detox 中记录找到的值?【英文标题】:Is there a way to log found values in Detox? 【发布时间】:2021-08-26 14:38:25 【问题描述】:

我正在尝试调试一些排毒测试,我有一些如下断言:

await expect(eventScreenMatcher.component).toExist();
await expect(eventScreenMatcher.toggleButton).toExist();
await expect(eventScreenMatcher.toggleButton).toHaveText('Add to schedule');

我认为是toggleButton 的按钮在屏幕上,并且有正确的文本Add to schedule。但是 Detox 在最后一个断言上失败了。

Detox 如何确定文本是什么(它只是检查那个元素),有没有办法记录它认为存在的内容?

这是我目前得到的输出:

预期:(带有文本:是“添加到计划”并且视图具有有效可见性=VISIBLE) 得到:“ReactViewGroupid=4605, visibility=VISIBLE, width=1300, height=139, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled =true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.view.ViewGroup$LayoutParams@34f98eb, tag=ToggleScheduleButton, root-is -layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1

【问题讨论】:

【参考方案1】:

您是否尝试过使用“getAttributes()”方法?有时可能有点棘手,但我认为这将有助于解决您的问题。 https://wix.github.io/Detox/docs/api/actions-on-element/#getattributes

然后你可以尝试类似的东西

const buttonAttributes = await eventScreenMatcher.toggleButton.getAttributes();

await jestExpect(buttonAttributes.text).toBe('Add to Schedule');

【讨论】:

以上是关于有没有办法在 Detox 中记录找到的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Detox 中启用 `debug` 运行 RN 测试?

Detox 框架可以在模拟器/模拟器上拍照吗?

有没有办法在维护视图中找到给定记录的定制请求编号?

使用 detox 通过 ID 测试查找元素 - React Native

有没有办法在 SQL Select 语句中使用来自 JSON 对象的值?

使用 Detox 在 Android React Native 应用程序中通过 Chrome 弹出测试登录