将文本复制到剪贴板会导致在模拟器上执行并行测试时崩溃

Copying text to clipboard leads to crash on parallel tests execution on emulators

运行 在几个模拟器上的 appium android 上进行测试。使用 ThreadLocal 来分离驱动程序实例。 遇到其中一个模拟器总是在同一步骤崩溃的问题。

经过调查我得出的结论是剪贴板的原因。一个模拟器单击剪贴板字段,一段时间后,第二个模拟器执行相同操作并崩溃。

Java 异常:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: socket hang up

亚行日志:

*** FATAL EXCEPTION IN SYSTEM PROCESS
  java.lang.IllegalStateException: beginBroadcast() called while already in a broadcast
    at android.os.RemoteCallbackList.beginBroadcast(RemoteCallbackList.java:241)
    at com.android.server.clipboard.ClipboardService.setPrimaryClipInternal(ClipboardService.java:583)
    at com.android.server.clipboard.ClipboardService.onHostClipboardUpdated(ClipboardService.java:205)
    at com.android.server.clipboard.HostClipboardMonitor.run(ClipboardService.java:125)
    at java.lang.Thread.run(Thread.java:919)

所以我的问题是:

  1. 是否可以禁止使用 adb 或 appium 命令将任何内容保存到剪贴板?
  2. 是否可以将其清除,从而成为一种重置?
  3. 或者多线程领域有决定?
  4. 还有其他方法吗?

感谢您的帮助。

我通过在放置任何内容后立即重置剪贴板解决了这个问题。表示单击该字段后立即。

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(new StringSelection(null), null);