Всем привет! Пробую для автоматизации тестирования связку 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; } }
}
Запускаю тест, запускается моя программа, но проверка не проходит.
Но если программа была уже запущена до запуска теста, тогда тест проходит. Что это за баг такой?