Форум программистов, компьютерный форум, киберфорум
Разработка и тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14

Winium Desktop Driver не находит окно

25.06.2019, 12:09. Показов 1675. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

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

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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);
    }
 
}
Вот тест для проверки окна

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
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();
    }
 
    @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, хотя вижу, что окно появляется
Миниатюры
Winium Desktop Driver не находит окно   Winium Desktop Driver не находит окно  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2019, 12:09
Ответы с готовыми решениями:

Не находит подходящего драйвера (no suitable driver)
При подключении к ORACLE из программы на Java выдает ошибку: no suitable driver. Использую NetBeans IDE 3.5.1. В среде IDE...

Развернуть окно на рабочую область Desktop
Сабж. В Дельфи отлично работает вот это: procedure MaxmzForm; // разворачивает окно на всю рабочую область Desktop var r :...

Окно загрузки файла в Java Desktop Application
Прошу прощения, если не нашел нужную тему, если она есть. Как вызвать окно считывания файла, допустим, через нажатие кнопки (...

1
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
03.07.2019, 12:11  [ТС]
Решил свою задачу

Java
1
driver.switchTo().activeElement()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.07.2019, 12:11
Помогаю со студенческими работами здесь

Функция FindWindow Не находит окно
Уважаемые специалисты, помогите примером. Есть окно с классом bordlg. Заголовка у окна нет. Окно является родительским для других...

Не находит окно фукция FindWindow
Не могу понять почему не находит окно FindWindow. Вот код программы #include "stdafx.h" #include <iostream> #include...

desktop-amd64 или desktop-i368 на AMD
Какой дистриб лучше поставить на след проц??? проц на картинке. Непойму его разрядность, 32 или 64? Ос стоит х32!

MS SQL driver type 4 ошибка: [Microsoft][SQLServer JDBC Driver]No ResultSet set was produced.
Всем привет! Может мне кто-нибудь помочь с моей проблемой связанной с MS SQL driver type 4? Я использую для разработки проекта следующее:...

wpd file system volume driver has a driver problem
Добрый вечер. Выносной хард видит диск но его нельзя открыть. Пробовал встроенным фиксом, он пишет wpd file system volume driver has a...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru