標籤:sed node.js cti start lag str date lib osi
問題背景描述
通過官方提供的 AppiumDriverLocalService 方法,代碼啟動 appium server
1 import io.appium.java_client.service.local.AppiumDriverLocalService; 2 import io.appium.java_client.service.local.AppiumServiceBuilder; 3 import io.appium.java_client.service.local.flags.GeneralServerFlag; 4 5 6 /** 7 * @author KingDow 8 * @date 2018/5/18 17:31 9 */10 public class AppiumDriverTest {11 12 public static void main(String[] args) {13 14 AppiumServiceBuilder builder = new AppiumServiceBuilder()15 .withArgument(GeneralServerFlag.SESSION_OVERRIDE)16 .withIPAddress("127.0.0.1")17 .usingAnyFreePort();18 AppiumDriverLocalService service = AppiumDriverLocalService.buildService(builder);19 service.start();20 }21 }
得到以下的報錯資訊
Exception in thread "main" io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: The local appium server has not been started. The given Node.js executable: C:\Program Files\nodejs\node.exe Arguments: [C:\Users\KingDow\AppData\Roaming\npm\node_modules\appium\build\lib\main.js, --port, 8000, --address, 127.0.0.1, --session-override] at io.appium.java_client.service.local.AppiumDriverLocalService.start(AppiumDriverLocalService.java:149) at com.ziroom.vayne.appium.server.AppiumDriverTest.main(AppiumDriverTest.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)Caused by: java.lang.NoSuchMethodError: com.google.common.util.concurrent.SimpleTimeLimiter.create(Ljava/util/concurrent/ExecutorService;)Lcom/google/common/util/concurrent/SimpleTimeLimiter; at org.openqa.selenium.net.UrlChecker.<init>(UrlChecker.java:62) at io.appium.java_client.service.local.AppiumDriverLocalService.ping(AppiumDriverLocalService.java:113) at io.appium.java_client.service.local.AppiumDriverLocalService.start(AppiumDriverLocalService.java:136) ... 6 moreProcess finished with exit code 1
問題分析定位
引用的第三方依賴包版本衝突,經尋找定位為 com.google.guava 版本太低導致,原版本20.0 中沒有 SimpleTimeLimiter create() 方法。
問題解決方案
更新guava最新版本後,查看源碼create() 方法存在
<!-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>25.1-jre</version></dependency>
通過 AppiumDriverLocalSerivce 無法啟動 appium service 問題