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

Фотография

Ожидание web-приложения, webdriver + sikuli


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

#1 do4_sfinksa

do4_sfinksa

    Новый участник

  • Members
  • Pip
  • 52 сообщений


Отправлено 05 февраля 2013 - 13:38

Добрый день!

Пишу тест для веб-приложения, использую библиотеку sikuli. Сперва загружаю IE с урлом методами selenium. Но приложение грузится долго, секунд 15, и работа sikuli-части начинается раньше загрузки, естественно не найдя нужный элемент. Какое ожидание куда добавить?

public class BeforeTest {

public static InternetExplorerDriver driver;
public static String baseUrl;
public static WebDriverBackedSelenium selenium;

@BeforeClass
public static void setUp() throws Exception {

System.setProperty("webdriver.ie.driver", "E:\\Soft\\IEDriverServer\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
baseUrl = "http://***";
selenium = new WebDriverBackedSelenium(driver, baseUrl);
driver.get(baseUrl);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}

@AfterClass
public static void tearDown() throws Exception {
selenium.stop();

}

public class Learning extends BeforeTest {

@Test
public void testpage() throws Exception {


Screen screen = new Screen();

Pattern username = new Pattern("E:\\My Work Docs\\Sikuli\\username.jpg");
Region window = screen.wait(username);
screen.wait(username);
window.type(username,"test");
}

}
  • 0

#2 hathi

hathi

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Потоцкий Евгений Леонидович

Отправлено 05 февраля 2013 - 14:44

а почему ты не хочешь чтоб сикули подождал 20 секунд пока появится какой-то определенный элемент приложения?
  • 0

#3 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 05 февраля 2013 - 15:10

на сайте Сикули есть пример со скайпом, где он в цикле ждёт определённого события. ИЕ может загрузиться за 10 сек, а может за 50
  • 0

#4 MrWesson

MrWesson

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 05 февраля 2013 - 15:16

Может, перед выполнением sikuli явно подождать, с помощью того же Selenium, пока элемент не появится через что-то вроде
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until((d) => { return d.FindElement(By.XPath("........")); });
?
  • 0

#5 do4_sfinksa

do4_sfinksa

    Новый участник

  • Members
  • Pip
  • 52 сообщений


Отправлено 06 февраля 2013 - 07:41

добавила Region window = screen.wait(username,20);
теперь всё работает. Не знала об этой возможности. Спасибо!
  • 0


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

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