我的问题是,当我有一个
<input type='file' id='input1'>
并且我尝试使用 webClick() 单击它时,没有任何反应。
我发布这个问题和答案是因为我花了很多天试图找出问题所在,我希望能为下一个人节省时间。
这里的答案是,出于安全原因,您可能无法自动单击输入标签(或者至少这似乎是我们代码的问题)。我的同事设法使用
adb logcat
找到了一个错误,看起来像这样:chromium: [INFO:CONSOLE(164)] "File chooser dialog can only be shown with a user activation.", source: (164)
使用 UIAutomator 而不是 Espresso 似乎可以解决这个问题。祝你好运!
您可以在 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。这不是最优雅的解决方案,但目前有效! 😄