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

Техники локализации плавающих дефектов
онлайн, начало 19 апреля
Тестирование безопасности
онлайн, начало 21 апреля
Тестирование мобильных приложений
онлайн, начало 21 апреля
Автоматизатор мобильных приложений
онлайн, начало 21 апреля
Фотография

WaitForElementPresent


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

#21 Biasha

Biasha

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:СПб

Отправлено 19 ноября 2008 - 10:24

Да, практика подтверждает Ваши слова))
  • 0
Молодой пожарный не боится пламя!

#22 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 10 июня 2013 - 04:32

Добрый день! Только начал освоение selenium, пока сижу в IDE, т к В ООП не силен пока что.

Появилась проблема при создании элементарного цикла - суть открыть страницу, дождаться появления элемента и продолжить тест.

В цикле не происходит проверка на присутсвие элемента на странице, сразу осуществляется выход из цикла, а если условием цикла поставить var1=1 -проверка почему-то осуществляется и получаем бесконечный цикл, как и должно быть.

Наверное я что-то недопонимаю, помогите пожалуйста, спасибо.

Прикрепленные файлы

  • Прикрепленный файл  20.jpg   154,12К   46 Количество загрузок:

  • 0

#23 Julia_Sh

Julia_Sh

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Юлия
  • Город:Новосибирск

Отправлено 10 июня 2013 - 04:42

Добрый день! Только начал освоение selenium, пока сижу в IDE, т к В ООП не силен пока что.

Появилась проблема при создании элементарного цикла - суть открыть страницу, дождаться появления элемента и продолжить тест.

В цикле не происходит проверка на присутсвие элемента на странице, сразу осуществляется выход из цикла, а если условием цикла поставить var1=1 -проверка почему-то осуществляется и получаем бесконечный цикл, как и должно быть.

Наверное я что-то недопонимаю, помогите пожалуйста, спасибо.

А IDE вообще поддерживает циклы и условные переходы?
  • 0

#24 Julia_Sh

Julia_Sh

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Юлия
  • Город:Новосибирск

Отправлено 10 июня 2013 - 04:46

Добрый день! Только начал освоение selenium, пока сижу в IDE, т к В ООП не силен пока что.

Появилась проблема при создании элементарного цикла - суть открыть страницу, дождаться появления элемента и продолжить тест.

В цикле не происходит проверка на присутсвие элемента на странице, сразу осуществляется выход из цикла, а если условием цикла поставить var1=1 -проверка почему-то осуществляется и получаем бесконечный цикл, как и должно быть.

Наверное я что-то недопонимаю, помогите пожалуйста, спасибо.

Можно еще попробовать storeExpression.
  • 0

#25 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 10 июня 2013 - 04:51


Добрый день! Только начал освоение selenium, пока сижу в IDE, т к В ООП не силен пока что.

Появилась проблема при создании элементарного цикла - суть открыть страницу, дождаться появления элемента и продолжить тест.

В цикле не происходит проверка на присутсвие элемента на странице, сразу осуществляется выход из цикла, а если условием цикла поставить var1=1 -проверка почему-то осуществляется и получаем бесконечный цикл, как и должно быть.

Наверное я что-то недопонимаю, помогите пожалуйста, спасибо.

Можно еще попробовать storeExpression.


Поддерживает, если подключить расширение, к тому же бесконечно-то у меня зацикливается, storeExpression пробовал.
  • 0

#26 Julia_Sh

Julia_Sh

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Юлия
  • Город:Новосибирск

Отправлено 10 июня 2013 - 06:58

Поддерживает, если подключить расширение, к тому же бесконечно-то у меня зацикливается, storeExpression пробовал.

Это разрешение не является официальным разрешением, а чья-то разработка? Если да, то это ожидаемо.
  • 0

#27 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 10 июня 2013 - 08:02


Поддерживает, если подключить расширение, к тому же бесконечно-то у меня зацикливается, storeExpression пробовал.

Это разрешение не является официальным разрешением, а чья-то разработка? Если да, то это ожидаемо.


Оно неофициальное, но, как мне показалось, все им пользуются. Брал тут
  • 0

#28 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 869 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 10 июня 2013 - 14:03

Может быть в условии цикла следует использовать не знак равенства, а "==" или "!=" ?
  • 0

http://starbugss.blogspot.ru - "Звездные баги", мой блог.


#29 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 10 июня 2013 - 18:38

Может быть в условии цикла следует использовать не знак равенства, а "==" или "!=" ?


К сожалению нет, <= тоже не поможет, почему-то игнорируется тело цикла
  • 0

#30 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 13 июня 2013 - 09:21

Скажите, а зачем использовать цикл когда можно просто использовать "waitForElementPresent"?
  • 0

#31 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 13 июня 2013 - 10:05

Скажите, а зачем использовать цикл когда можно просто использовать "waitForElementPresent"?


WaitFor не работает с Ajax
  • 0

#32 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 13 июня 2013 - 10:21

WaitFor не работает с Ajax

Так Вам надо работать с AJAX или "открыть страницу, дождаться появления элемента и продолжить тест"? В указанном примере с яндексом достаточно использовать waitForElementPresent.
Если надо работать с Ajax то при написании тестов на выбранном языке программирования используется implicitlyWait. Для IDE есть плагин https://code.google....-implicit-wait/
  • 1

#33 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 13 июня 2013 - 10:29


WaitFor не работает с Ajax

Так Вам надо работать с AJAX или "открыть страницу, дождаться появления элемента и продолжить тест"? В указанном примере с яндексом достаточно использовать waitForElementPresent.
Если надо работать с Ajax то при написании тестов на выбранном языке программирования используется implicitlyWait. Для IDE есть плагин https://code.google....-implicit-wait/


Яндекс просто для примера, вообще мне нужно работать именно с Ajax. Попробую этот плагин, спасибо. Но все равно не понятно почему цикл не работает.
  • 0

#34 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 13 июня 2013 - 12:20

Яндекс просто для примера, вообще мне нужно работать именно с Ajax. Попробую этот плагин, спасибо. Но все равно не понятно почему цикл не работает.

Разве selenium IDE по умолчанию поддерживает работу с while?

storeElementPresent судя по документации возвращает Вам или true если элемент найден или false, если элемента нет, таким образом условие для цикла надо изменить.
  • 0

#35 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 13 июня 2013 - 14:32


Яндекс просто для примера, вообще мне нужно работать именно с Ajax. Попробую этот плагин, спасибо. Но все равно не понятно почему цикл не работает.

Разве selenium IDE по умолчанию поддерживает работу с while?

storeElementPresent судя по документации возвращает Вам или true если элемент найден или false, если элемента нет, таким образом условие для цикла надо изменить.


Нет, не поддерживает. А как изменить? В моем пониммании это должно работать так:

1) присваиваем переменной var1 ноль
2) Вход в цикл, проверка условия. Переменная равна нулю? Если да, то должно выплниться тело цикла, есил нет, то выход из него.
3) В теле цикла проверяем присуствие элемента на странице и записываем о или 1 в переменную var1.

Или я что-то не так понимаю?
  • 0

#36 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 13 июня 2013 - 14:47

Нет, не поддерживает. А как изменить?

Исправить опять же плагином, Selenium flow control, описание можно почитать по ссылке после чего теоретически должен работать while и другие операторы.

3) В теле цикла проверяем присуствие элемента на странице и записываем о или 1 в переменную var1.

Или я что-то не так понимаю?

Функция storeElementPresent возвращает true или false в ту переменную которую вы указали(var1). Но так как у Вас условие цикла проверяет на ноль(а не на true или false), то цикл должен проходить бесконечно.

Попробуйте поставить поддержку while и записать условие вроде while var1 == false
Может быть заработает.
  • 0

#37 lokofc

lokofc

    Активный участник

  • Members
  • PipPip
  • 78 сообщений
  • ФИО:Pavel

Отправлено 13 июня 2013 - 15:17

Flow control стоит, без него нет таких комманд, как while вообще нет.

"Как изменить?" - это я про цикл имел ввиду.

Для Selenium IDE 0 и 1 тоже самое, что и false и true, операции сравнения == он не знает, есть только присвоение
  • 0

#38 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 13 июня 2013 - 19:24

Для Selenium IDE 0 и 1 тоже самое, что и false и true, операции сравнения == он не знает, есть только присвоение

Я не работал с Selenium IDE, но по ссылке что я дал в примере есть сравнение через ==:
if (selenium.isElementPresent(‘link=« Следующие записи’)==true){nextStep=’OpenNextPage’} else {nextStep=’OpenPreviousPage’}

  • 0

#39 FR33D

FR33D

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

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

Отправлено 14 июня 2013 - 06:22

А можно привести пример "WaitForElementPrecsent" для WebDriver в Еклипсе? Очень интересная тема...)
  • 0

#40 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 14 июня 2013 - 06:41

А можно привести пример "WaitForElementPrecsent" для WebDriver в Еклипсе? Очень интересная тема...)


Например так:

public void waitForElement(By locator, int waitTime) // locator - локатор элемента; waitTime - сколько ждать
    {
        Wait<WebDriver> wait = new WebDriverWait(driver, waitTime);
        wait.until(ExpectedConditions.visibilityOfElementLocated(locator));
    }
В ExpectedConditions есть различные условия которые можно использовать.
  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



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

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

Яндекс.Метрика
Реклама на портале