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

Программирование на Python для тестировщиков
онлайн, начало 23 октября
Тестирование безопасности
онлайн, начало 28 октября
Практикум по тест-дизайну 2.0
онлайн, начало 30 октября
Автоматизатор мобильных приложений
онлайн, начало 28 октября
Фотография

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
  • 850 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 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 анонимных

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