Appium 2.0.0:主 Appium 脚本不存在于“/usr/local/lib/node_modules/appium/build/lib/main.js”

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

卸载 Appium v1.22 并安装 Appium v2.0.0 后,我在尝试运行自动化测试时看到以下错误。

非常感谢您的帮助,谢谢!

Test custom report 0
[INFO ] 2023-07-11 13:21:10.503 com.qa.utils.ServerManager:20 - starting appium server

io.appium.java_client.service.local.InvalidServerInstanceException: The main Appium script does not exist at '/usr/local/lib/node_modules/appium/build/lib/main.js'

    at io.appium.java_client.service.local.AppiumServiceBuilder.validatePath(AppiumServiceBuilder.java:131)
    at io.appium.java_client.service.local.AppiumServiceBuilder.loadPathToMainScript(AppiumServiceBuilder.java:289)
    at io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:381)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:358)
    at com.qa.utils.ServerManager.startServer(ServerManager.java:26)
    at com.qa.runners.RunnerBase.setUpClass(RunnerBase.java:63)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
    at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:62)
    at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:385)
    at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:321)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:176)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
    at org.testng.TestRunner.privateRun(TestRunner.java:794)
    at org.testng.TestRunner.run(TestRunner.java:596)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
    at org.testng.SuiteRunner.access$000(SuiteRunner.java:28)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:418)
    at org.testng.internal.thread.ThreadUtil.lambda$execute$0(ThreadUtil.java:64)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)

[Utils] [ERROR] [Error] java.lang.NullPointerException
    at com.qa.runners.RunnerBase.scenarios(RunnerBase.java:76)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:77)
    at org.testng.internal.MethodInvocationHelper.invokeMethodNoCheckedException(MethodInvocationHelper.java:46)
    at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:146)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:798)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:740)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:59)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:38)
    at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:791)
    at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
    at org.testng.TestRunner.privateRun(TestRunner.java:794)
    at org.testng.TestRunner.run(TestRunner.java:596)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
    at org.testng.SuiteRunner.access$000(SuiteRunner.java:28)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:418)
    at org.testng.internal.thread.ThreadUtil.lambda$execute$0(ThreadUtil.java:64)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)


Test ignored.

===============================================
Suite
Total tests run: 1, Passes: 0, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 1
===============================================


Process finished with exit code 0

我希望测试能够成功运行,但错误消息似乎显示了主 Appium 脚本的路径,该路径与实际位置不同,如 appium 日志中所示。

user@user-Mac tempo-testng % appium
[Appium] Welcome to Appium v2.0.0 (REV 2b4cfb033757b63ab0b128d01c58db76480956f9)
[Appium] Attempting to load driver uiautomator2...
[debug] [Appium] Requiring driver at /Users/user/.appium/node_modules/appium-uiautomator2-driver
[Appium] Attempting to load driver xcuitest...
[debug] [Appium] Requiring driver at /Users/user/.appium/node_modules/appium-xcuitest-driver
[Appium] Attempting to load driver mac2...
[debug] [Appium] Requiring driver at /Users/user/.appium/node_modules/appium-mac2-driver
[Appium] Attempting to load driver safari...
[debug] [Appium] Requiring driver at /Users/user/.appium/node_modules/appium-safari-driver
[Appium] Attempting to load driver chromium...
[debug] [Appium] Requiring driver at /Users/user/.appium/node_modules/appium-chromium-driver
[Appium] Could not load driver 'chromium', so it will not be available. Error in loading the driver was: Cannot find module '@appium/types'
[Appium] Require stack:
[Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/build/lib/basedriver/driver.js
[Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/build/lib/index.js
[Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/index.js
[Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/appium-chromedriver/build/lib/chromedriver.js
[Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/appium-chromedriver/build/lib/index.js
[Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/build/lib/driver.js
[Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/index.js
[Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/extension/extension-config.js
[Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/cli/extension-command.js
[Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/cli/driver-command.js
[Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/cli/extension.js
[Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/main.js
[Appium] - /opt/homebrew/lib/node_modules/appium/index.js
[debug] [Appium] Error: Cannot find module '@appium/types'
[debug] [Appium] Require stack:
[debug] [Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/build/lib/basedriver/driver.js
[debug] [Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/build/lib/index.js
[debug] [Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/index.js
[debug] [Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/appium-chromedriver/build/lib/chromedriver.js
[debug] [Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/node_modules/appium-chromedriver/build/lib/index.js
[debug] [Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/build/lib/driver.js
[debug] [Appium] - /Users/user/.appium/node_modules/appium-chromium-driver/index.js
[debug] [Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/extension/extension-config.js
[debug] [Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/cli/extension-command.js
[debug] [Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/cli/driver-command.js
[debug] [Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/cli/extension.js
[debug] [Appium] - /opt/homebrew/lib/node_modules/appium/build/lib/main.js
[debug] [Appium] - /opt/homebrew/lib/node_modules/appium/index.js
[debug] [Appium]     at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1090:15)
[debug] [Appium]     at Function.Module._load (node:internal/modules/cjs/loader:934:27)
[debug] [Appium]     at Module.require (node:internal/modules/cjs/loader:1157:19)
[debug] [Appium]     at require (node:internal/modules/helpers:119:18)
[debug] [Appium]     at Object.<anonymous> (/Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/lib/basedriver/driver.js:18:1)
[debug] [Appium]     at Module._compile (node:internal/modules/cjs/loader:1275:14)
[debug] [Appium]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
[debug] [Appium]     at Module.load (node:internal/modules/cjs/loader:1133:32)
[debug] [Appium]     at Function.Module._load (node:internal/modules/cjs/loader:972:12)
[debug] [Appium]     at Module.require (node:internal/modules/cjs/loader:1157:19)
[debug] [Appium]     at require (node:internal/modules/helpers:119:18)
[debug] [Appium]     at Object.<anonymous> (/Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/lib/index.js:8:1)
[debug] [Appium]     at Module._compile (node:internal/modules/cjs/loader:1275:14)
[debug] [Appium]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
[debug] [Appium]     at Module.load (node:internal/modules/cjs/loader:1133:32)
[debug] [Appium]     at Function.Module._load (node:internal/modules/cjs/loader:972:12)
[debug] [Appium]     at Module.require (node:internal/modules/cjs/loader:1157:19)
[debug] [Appium]     at require (node:internal/modules/helpers:119:18)
[debug] [Appium]     at Object.<anonymous> (/Users/user/.appium/node_modules/appium-chromium-driver/node_modules/@appium/base-driver/index.js:1:18)
[debug] [Appium]     at Module._compile (node:internal/modules/cjs/loader:1275:14)
[debug] [Appium]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
[debug] [Appium]     at Module.load (node:internal/modules/cjs/loader:1133:32)
[debug] [Appium]     at Function.Module._load (node:internal/modules/cjs/loader:972:12)
[debug] [Appium]     at Module.require (node:internal/modules/cjs/loader:1157:19)
[debug] [Appium]     at require (node:internal/modules/helpers:119:18)
[debug] [Appium]     at Object.<anonymous> (/Users/user/.appium/node_modules/appium-chromium-driver/node_modules/appium-chromedriver/lib/chromedriver.js:2:1)
[debug] [Appium]     at Module._compile (node:internal/modules/cjs/loader:1275:14)
[debug] [Appium]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
[debug] [Appium]     at Module.load (node:internal/modules/cjs/loader:1133:32)
[debug] [Appium]     at Function.Module._load (node:internal/modules/cjs/loader:972:12)
[debug] [Appium]     at Module.require (node:internal/modules/cjs/loader:1157:19)
[debug] [Appium]     at require (node:internal/modules/helpers:119:18)
[debug] [Appium]     at Object.<anonymous> (/Users/user/.appium/node_modules/appium-chromium-driver/node_modules/appium-chromedriver/lib/index.ts:1:1)
[debug] [Appium]     at Module._compile (node:internal/modules/cjs/loader:1275:14)
[debug] [Appium]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
[debug] [Appium]     at Module.load (node:internal/modules/cjs/loader:1133:32)
[debug] [Appium]     at Function.Module._load (node:internal/modules/cjs/loader:972:12)
[debug] [Appium]     at Module.require (node:internal/modules/cjs/loader:1157:19)
[debug] [Appium]     at require (node:internal/modules/helpers:119:18)
[debug] [Appium]     at Object.<anonymous> (/Users/user/.appium/node_modules/appium-chromium-driver/lib/driver.js:3:1)
[debug] [Appium]     at Module._compile (node:internal/modules/cjs/loader:1275:14)
[debug] [Appium]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
[debug] [Appium]     at Module.load (node:internal/modules/cjs/loader:1133:32)
[debug] [Appium]     at Function.Module._load (node:internal/modules/cjs/loader:972:12)
[debug] [Appium]     at Module.require (node:internal/modules/cjs/loader:1157:19)
[debug] [Appium]     at require (node:internal/modules/helpers:119:18)
(node:36827) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLS in your client code to connect to this server:
[Appium]        http://127.0.0.1:4723/ (only accessible from the same host)
[Appium]        http://192.168.1.4:4723/
[Appium] Available drivers:
[Appium]   - [email protected] (automationName 'UiAutomator2')
[Appium]   - [email protected] (automationName 'XCUITest')
[Appium]   - [email protected] (automationName 'Mac2')
[Appium]   - [email protected] (automationName 'Safari')
[Appium]   - [email protected] (automationName 'Chromium')
[Appium] Available plugins:
[Appium]   - [email protected]
[Appium]   - [email protected]
[Appium]   - [email protected]
[Appium] No plugins activated. Use the --use-plugins flag with names of plugins to activate
appium
1个回答
0
投票

我安装 nvm 后遇到问题 它将默认节点路径移动到 .nvm 这就是为什么找不到appium的原因

  1. 找到appium路径“which appium”
  2. 在该路径中找到main.js
  3. 在方法.withAppiumJS中添加路径

就我而言

        builder = new AppiumServiceBuilder()
            .withCapabilities(options)
            .withIPAddress("127.0.0.1")
            .withAppiumJS(new File("//Users/antonio.aguilar/.nvm/versions/node/v20.11.1/lib/node_modules/appium/build/lib/main.js"))
            .usingAnyFreePort();

它对我有用

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