WebAppDriver не проходит тест, если программа не запущена

Всем привет! Пробую для автоматизации тестирования связку WinAppDriver + Selenium

package ru.minicom.itphone.client;

import io.appium.java_client.windows.WindowsDriver;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.URL;
import java.util.concurrent.TimeUnit;

public class NewTestClient {
private static WindowsDriver ClientSession = null;
private static WebElement Result = null;
private static String wapPath = “C:\Program Files (x86)\Windows Application Driver\”;
private static String wapName = “WinAppDriver.exe”;
private static ProcessBuilder wap;
private static Process shell;

@BeforeClass
public static void setup() {
    try {
        /*wap = new ProcessBuilder(wapPath + wapName);
        shell = wap.start();*/
        DesiredCapabilities cap = new DesiredCapabilities();
        //cap.setCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App");
        //cap.setCapability("platformName", "Windows");
        //cap.setCapability("deviceName", "WindowsPC");
        cap.setCapability("app", "C:\\Program Files (x86)\\SoftPhone\\CLIENT\\SoftPhoneClient.exe");
        ClientSession = new WindowsDriver(new URL("http://127.0.0.1:4723"), cap);
        ClientSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
    } catch (Exception e){
        e.printStackTrace();
    }finally {

    }
}

@Test
public void checkLoginPage(){
    System.out.println(checkLoginWindow());
    Assert.assertTrue(checkLoginWindow());
}

@AfterClass
public static void AfterClass(){
    Result = null;
    if(ClientSession != null){
    ClientSession.quit();
    }
    ClientSession = null;

    //shell.destroy();
}

public boolean checkLoginWindow(){
    try{
        ClientSession.findElementByClassName("TfrmLogin");
        return true;
    }catch (Exception e){
        return false;
    }
}

}

Запускаю тест, запускается моя программа, но проверка не проходит.

Но если программа была уже запущена до запуска теста, тогда тест проходит. Что это за баг такой?

ClientSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS
Не успевает за 2 секунды загрузится поставьте больше время

Я уже и явную паузу ставил

Поставил ClientSession.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS), не помогло
Поставил паузу Thread.sleep(10000) эффект тот же

Все что в try успешно проходит?

Всё что в BeforeClass проходит успешно.
А вот дальше начинаются ошибки

Ну так там трай кетч, без него все ок? В catch не проваливается?

Убрал try catch не помогло

Вот так вот работает
ClientSession = new WindowsDriver(new URL(“http://127.0.0.1:4723”), cap);
ClientSession = new WindowsDriver(new URL(“http://127.0.0.1:4723”), cap);

Т.е. как я понял, при первом запуске ClientSeesion не формирует список элементов и обратиться к ним не может

Попробуй задержку между двумя этими строками
ClientSession = new WindowsDriver(new URL(“http://127.0.0.1:4723”), cap);
ClientSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

Не помогло(

Я когда пробовал, помню нужно было дождаться что процесс WinAppDriver запущен, так как вылетала ошибка, но такого как у вас вроде небыло.

А с Winium.Desktop.Driver работали?

Не, только Appium он вроде как по популярнее.

Не подскажите, где почитать про этот инструмент поподробнее?

Я на c# делал, в основном первые ссылки по запросу appium tutorial

Спасибо)