Appium Java TestNG Framework> Программный запуск Appium через исключение нулевой точки Mac с файлом appium main.js
MacBook Air
Java 1.8
Appium Desktop версия 1.8.1
Привет, ребята,
Я создаю среду TestNG и хочу программно запустить мой сервер appium Desktop для моих тестов. Поэтому я решил создать java-тестовый класс для вызова appium для меня, и я подумал, что закодировал его нормально, но когда я запустил его, просто чтобы проверить. Получил 'null point exception'
1. Что я сделал не так?
2. Как мне это исправить?
Вот программный код запуска appium:
package aappiumLaunchServer;
import java.io.File;
import io.appium.java_client.service.local.AppiumServiceBuilder;
public class LaunchAppium {
private static AppiumServiceBuilder service;
public static void main(String[] args) {
//text
stopAppium();
startAppium();
stopAppium();
}
public static void startAppium() {
System.out.println("Start Appium Server");
service = new AppiumServiceBuilder().usingDriverExecutable(new File("/usr/local/bin/node"))
.withAppiumJS(new File ("/Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js "));
service.build().start();
System.out.println("You can now use Appium Server");
}
public static void stopAppium(){
System.out.println("Appium Server is shutting down....");
try {
service.build().stop();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Your current appium session is terminated... ");
}
System.out.println(" Appium Server has shut down. Thank you for using Appium Server");
}
}
Вот сообщение от затмения
appium Server is shutting down....
java.lang.NullPointerExceptionYour current appium session is terminated...
Appium Server has shut down. Thank you for using Appium Server
Start Appium Server
at aappiumLaunchServer.LaunchAppium.stopAppium(LaunchAppium.java:44)
at aappiumLaunchServer.LaunchAppium.main(LaunchAppium.java:16)
Exception in thread "main" io.appium.java_client.service.local.InvalidServerInstanceException: Invalid server instance exception has occured: The invalid appium node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js has been defined
at io.appium.java_client.service.local.AppiumServiceBuilder.validateNodeStructure(AppiumServiceBuilder.java:102)
at io.appium.java_client.service.local.AppiumServiceBuilder.checkAppiumJS(AppiumServiceBuilder.java:294)
at io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:389)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:342)
at aappiumLaunchServer.LaunchAppium.startAppium(LaunchAppium.java:29)
at aappiumLaunchServer.LaunchAppium.main(LaunchAppium.java:17)
Caused by: java.io.IOException: The node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js doesn't exist
at io.appium.java_client.service.local.AppiumServiceBuilder.validateNodeStructure(AppiumServiceBuilder.java:104)
... 5 more
2 ответа
Просто с помощью режима отладки в методе startAppium попробуйте создать экземпляр файла
new File ("/Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js "
Это, вероятно, покажет вам, что он не может найти файл
Если вы установили NodeJS из установки для Windows и \AppData\Roaming\npm пуст, вам следует открыть Windows PowerShell и выполнить команду: npm install -g appium
Кажется, вы пытаетесь использовать файл JS main.js из Appium.app, вместо этого установите appium с помощью узла, и вы должны найти его в
Appium_MAIN_JS = System.getenv(APPIUM_HOME)+"/node_modules/appium/build/lib/main.js" (определите APPIUM_HOME в вашем bash_profile) Возможно, у вашего кода нет доступа к Appium.app (я предполагаю, что он находится в Папка приложения)
и затем вы можете вызвать.buildService (новый AppiumServiceBuilder().withAppiumJS(новый файл (Appium_MAIN_JS))))