将文本复制到剪贴板会导致在模拟器上执行并行测试时崩溃
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)
所以我的问题是:
- 是否可以禁止使用 adb 或 appium 命令将任何内容保存到剪贴板?
- 是否可以将其清除,从而成为一种重置?
- 或者多线程领域有决定?
- 还有其他方法吗?
感谢您的帮助。
我通过在放置任何内容后立即重置剪贴板解决了这个问题。表示单击该字段后立即。
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(new StringSelection(null), null);
运行 在几个模拟器上的 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)
所以我的问题是:
- 是否可以禁止使用 adb 或 appium 命令将任何内容保存到剪贴板?
- 是否可以将其清除,从而成为一种重置?
- 或者多线程领域有决定?
- 还有其他方法吗?
感谢您的帮助。
我通过在放置任何内容后立即重置剪贴板解决了这个问题。表示单击该字段后立即。
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(new StringSelection(null), null);