Модераторы: BearBeer
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Winium Desktop Driver не находит окно 
V
    Опции темы
NZero
Дата 25.6.2019, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



Всем привет!

Написал тест для проверки появления окна при определенных действиях. Ищу окно по параметру className. Вот мой код для проверки существования окна
Код


import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;

import java.awt.*;
import java.awt.event.KeyEvent;

public class MainPage {

    HelperClass hclass = new HelperClass();

    private Screen screen;
    private WebDriver driver;
    private By iconAdditionalClientTreeBy = By.name("Поиск контакта");
    private By treeBy = By.name("Шеврон уведомления");
    private By mainWindowBy = By.className("TfrmMain"); //Вот этот className
    private Pattern imgIconClientTreeBy = hclass.newPattern("tree.JPG");
    private Pattern imgMainWindowMenu = hclass.newPattern("mainWindowMenu.jpg");
    private Pattern imgExitButton = hclass.newPattern("exit.jpg");
    private Robot robot;


    public MainPage(Screen screen, WebDriver driver){
        this.screen = screen;
        this.driver = driver;
    }

    //Проверяем, есть ли дополнительная иконка клиента
    public boolean checkIconAdditionalClientTree(){
        try{
            new WebDriverWait(driver, 60).until(ExpectedConditions.presenceOfElementLocated(iconAdditionalClientTreeBy));
            return true;
        }catch (NoSuchElementException e){
            return false;
        }
    }


    public void callMainWindowHotButtons() throws AWTException {
        robot = new Robot();
        if(checkIconAdditionalClientTree()){
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_SHIFT);
            robot.keyPress(KeyEvent.VK_F1);
        }
    }

    public void callMainWindowIconTree(String login) throws FindFailed {
        if(checkIconAdditionalClientTree()){
            screen.click(imgIconClientTreeBy);
            driver.findElement(By.name("[" + login + "] - В сети")).click();
        }

    }

    //Здесь проверяем, что элемент mainWindowBy существует
    public boolean checkMainWindow(){
        try{
            driver.findElement(mainWindowBy);
            return true;
        }catch(NoSuchElementException e){
            return false;
        }
    }

    public void clickExitButton() throws FindFailed {
        screen.click(imgMainWindowMenu);
        screen.click(imgExitButton);
    }

}



Вот тест для проверки окна

Код

import org.junit.*;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;

import java.io.File;
import java.io.IOException;
import java.net.URL;

public class MainPageTest {

    private Process shell;
    private WebDriver driver;
    private Screen screen;
    private String profile = System.getProperty("user.home") + "\\AppData\\Roaming\\IT-Phone\\Profiles";;
    private boolean windowMain;
    private String login;
    private String password;
    private String server;

    @Before
    public void setUp() throws IOException {
        StartTest start = new StartTest();
        shell = start.RunWinum();
        start.deleteFolderProfile(new File(profile));
        driver = new RemoteWebDriver(new URL("http://localhost:9999"), start.startClient());
        screen = new Screen();
    }

    @Ignore
    @Test
    public void testCallMainWindowIconTree() throws FindFailed {
        MainPage mainPage = new MainPage(screen, driver);
        LoginPage loginPage = new LoginPage(screen, driver);
        login = "2001";
        password = "o0cJ2uas";
        server = "172.22.50.100";
        loginPage.enterDataFields(login, password, server);
        loginPage.clickEnterButton();
        mainPage.checkIconAdditionalClientTree();
        mainPage.callMainWindowIconTree(login);
        windowMain = mainPage.checkMainWindow();
        mainPage.clickExitButton();
        System.out.println(windowMain);
        Assert.assertTrue(windowMain);
     }

    @After
    public void tearDown(){
        shell.destroy();
    }
}



Тест выдаёт результат false, хотя вижу, что окно появляется 

user posted image
user posted image
PM MAIL WWW ICQ   Вверх
NZero
Дата 3.7.2019, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



Кажется я решил эту задачу

Код

driver.switchTo().activeElement();

PM MAIL WWW ICQ   Вверх
Google
  Дата 19.10.2019, 20:02 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Тестирование приложений | Следующая тема »


 




[ Время генерации скрипта: 0.1032 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.