Android Espresso webClick() 不适用于输入标签

问题描述 投票:0回答:2

我的问题是,当我有一个

<input type='file' id='input1'>
并且我尝试使用 webClick() 单击它时,没有任何反应。

testing input automated-tests android-espresso
2个回答
0
投票

我发布这个问题和答案是因为我花了很多天试图找出问题所在,我希望能为下一个人节省时间。

这里的答案是,出于安全原因,您可能无法自动单击输入标签(或者至少这似乎是我们代码的问题)。我的同事设法使用

adb logcat
找到了一个错误,看起来像这样:
chromium: [INFO:CONSOLE(164)] "File chooser dialog can only be shown with a user activation.", source:  (164)

使用 UIAutomator 而不是 Espresso 似乎可以解决这个问题。祝你好运!


0
投票

您可以在 UI 测试中通过使用 UiAutomator 按坐标单击输入标签来欺骗系统。例如:

UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).run {
    click(
        displayWidth / 2, // or use fixed x-axis coordinates instead
        displayHeight / 10 // or use fixed y-axis coordinates instead
    )
}

此代码假设输入标签位于屏幕顶部附近,因此您单击宽度的中点和屏幕高度的 1/10。这不是最优雅的解决方案,但目前有效! 😄

© www.soinside.com 2019 - 2024. All rights reserved.