All streams
Search
Write a publication
Pull to refresh
4
0
Антон Головченко @P-Ray

QA Engineer

Send message
Насколько я понимаю, мы работаем с Winium драйвером опосредованно через Selenium. К сожаленью ли, к счастью ли, я тоже использовал слипы (наверное, сказывается опыт работы с дельфовым Zombie). Вот тут есть ImplicitlyWait — подозреваю, это именно то, что Вам нужно. Я же ожидаю подобным образом:
int timeoutIC = 5; //max number of iterations
Boolean flg = true; //success flag
int h = 0;
WebElement win = null;
while ((flg)&&(h < timeoutIC))
{
    win = attachN(_webDriver,winName);//_webDriver - current attached driver, winName - Name of the target window
    if (win == null)
    {
        log("Window was not found, waiting further");
        //optional - Thread.sleep(...) here, but not necessary
        h++;
    }
    else
    {
        log("Window found");
        flg = false;
    }
}
if (flg){
    throw new Exception("The window was not appeared in time");
}

/* the rest of your code*/

public static WebElement attachN(WebDriver _driver, String _name){
    log("Attaching to element ...");
    try{
        WebElement res = _driver.findElement(By.name(_name)); //will wait for window to appear for predefined time, will throw exception if window was not found
        return res;
    }
    catch(Exception ex){
        log("... window was not found");
        return null;
    }
}

Если драйвер долго не находит какой-либо элемент (таймаут несколько секунд, точное значение не знаю), он выкидывает эксепшн. Так что можно отлавливать его в циклах. While (true) это не очень хороший вариант, а вот свой int «таймаут» по количеству попыток найти окно хорошо подходит.
В начале знакомства почему-то попадались материалы исключительно на Python и изредка Java. А вообще всё, судя по всему, ограничивается возможностью работы с Selenium.
Пара ссылок на эту тему:
http://docs.seleniumhq.org/about/platforms.jsp#programming-languages
https://habrahabr.ru/company/2gis/blog/263347/

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity