Комментарии 8
Для поиска элементов и анализа окон удобно использовать AutomationSpy
0
«С Winium в нормальном режиме можно общаться посредством Selenium с использованием Python и Java; „
А что по поводу .NET/c#?
А что по поводу .NET/c#?
0
В начале знакомства почему-то попадались материалы исключительно на Python и изредка Java. А вообще всё, судя по всему, ограничивается возможностью работы с Selenium.
Пара ссылок на эту тему:
http://docs.seleniumhq.org/about/platforms.jsp#programming-languages
https://habrahabr.ru/company/2gis/blog/263347/
Пара ссылок на эту тему:
http://docs.seleniumhq.org/about/platforms.jsp#programming-languages
https://habrahabr.ru/company/2gis/blog/263347/
0
Ниже есть ссылка на C# пример (перетаскивание файла в хром). Не идеальный, но работает.
0
Интересно, а с долгим открытием окон или появлением/исчезновением элементов сталкивались? Если да, решает ли Winium эту задачу своими средствами?
0
Если драйвер долго не находит какой-либо элемент (таймаут несколько секунд, точное значение не знаю), он выкидывает эксепшн. Так что можно отлавливать его в циклах. While (true) это не очень хороший вариант, а вот свой int «таймаут» по количеству попыток найти окно хорошо подходит.
0
Есть пример, как указать свой таймаут? Это Selenium делает или сам Winium?
Спрашиваю вот почему. Скажем, мои студенты написали сценарий по перетаскиванию файла из explorer.exe в хром. Пример c Winium на C# получился костыльным из-за жёстких слипов. Для максимально честного визуального сравнения, скажем, с примером на pywinauto нужно выжать максимум краткости и читабельности из каждого инструмента. Уверен, в самом Winium должны быть адекватные wait'ы. Мне пока просто хочется знать, есть они или нет. И насколько удобные. Ну, и для полноты есть подобный пример на C# с применением TestStack.White, тоже костыльный, к сожалению.
Спрашиваю вот почему. Скажем, мои студенты написали сценарий по перетаскиванию файла из explorer.exe в хром. Пример c Winium на C# получился костыльным из-за жёстких слипов. Для максимально честного визуального сравнения, скажем, с примером на pywinauto нужно выжать максимум краткости и читабельности из каждого инструмента. Уверен, в самом Winium должны быть адекватные wait'ы. Мне пока просто хочется знать, есть они или нет. И насколько удобные. Ну, и для полноты есть подобный пример на C# с применением TestStack.White, тоже костыльный, к сожалению.
0
Насколько я понимаю, мы работаем с 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;
}
}
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Автоматизация тестирования Windows-приложений с использованием Winium