gpt4 book ai didi

java - Espresso 点击文本的特定单词

转载 作者:搜寻专家 更新时间:2023-11-01 02:58:54 26 4
gpt4 key购买 nike

在我的 Espresso 测试中,我想点击带有 idSwitchTextView 的文本元素的特定部分。全文为“Are you a member? Login with email”当您单击使用电子邮件登录时,它会切换页面 View 。

当我使用 onView(withId(R.id.switchTextView)).perform(click()); 测试通过但是因为在我想要点击的文本之前有初始文本它不会改变 View 。如何定位并仅触摸“使用电子邮件登录”文本?

最佳答案

我找到的唯一方法是找到按下的位置并告诉 Espresso 按下那里。这看起来真的很难,但实际上我第一次尝试了 3 次就选对了位置。这比听起来容易。

我只是这样做的:

onView(withId(R.id.switchTextView)).perform(clickPercent(0.4F, 0.4F))

原因是因为我的文本稍微位于 View 的左上部分。在这种情况下,我会建议 0.5F、0.8F 之类的值,因为我认为这是需要单击的标签的正确部分。

为此,我使用了 clickPercent。一种方法copyed by this anwser .

我复制我的 Kotlin 版本以防有人发现它有用。

fun clickPercent(pctX: Float, pctY: Float): ViewAction {
return GeneralClickAction(
Tap.SINGLE,
CoordinatesProvider { view ->
val screenPos = IntArray(2)
view.getLocationOnScreen(screenPos)
val w = view.width
val h = view.height

val x = w * pctX
val y = h * pctY

val screenX = screenPos[0] + x
val screenY = screenPos[1] + y

floatArrayOf(screenX, screenY)
},
Press.FINGER,
InputDevice.SOURCE_MOUSE,
MotionEvent.BUTTON_PRIMARY)
}

关于java - Espresso 点击文本的特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42390788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com