Перейти к содержимому

Автоматизатор мобильных приложений
онлайн, начало 11 августа
Тестирование безопасности
онлайн, начало 11 августа
Тестирование мобильных приложений
онлайн, начало 11 августа
Автоматизация тестирования REST API на Python
онлайн, начало 11 августа
Фотография

WinAppDriver + Selenium не может найти элемент


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 28 июня 2019 - 07:57

Всем привет! Пробую для автоматизации тестирования связку 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;
}
}
}

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

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


  • 0

#2 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 28 июня 2019 - 10:04

Решил пока таким способом

ClientSession = new WindowsDriver(new URL("http://127.0.0.1:4723"), cap);
ClientSession.quit();
ClientSession = new WindowsDriver(new URL("http://127.0.0.1:4723"), cap);

Но сдаётся мне это не совсем правильно


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале