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

Фотография

проблема с проверкой наличия элемента на странице в цикле и выходом из

selenium java webdriver цикл

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

#1 Ekaterina_grou

Ekaterina_grou

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Грузинцева Екатерина Сергеевна

Отправлено 16 ноября 2021 - 09:55

Есть боковое меню типа:
Раздел 1
Раздел 2
Раздел 2

Раздел №№
После проверки в разделе с неправильными данными появляется алерт (//label[@class = 'z-checkbox-content)
Происходит переход в раздел с чекбоксом
Чекбокс виден
Удаляются неправильные данные
Проверка - есть ли чекбокс
Если есть, то удаляем данные дальше
Если нет, переходим в следующий раздел
Я оформила это циклом, то есть цикл крутится, пока есть чекбокс. Как только он пропадает, то происходит переход в следующий раздел.
Пробовала реализовать проверку чекбокса разными способоками.

  1. Через счетчик, проверяя величину массива по (//label[@class = 'z-checkbox-content
Скрытый текст

В таком случае цикл прокручивался, но из цикла нормально программа не выходила и к следующему шагу перехода не было
Стектрейс был такой

Скрытый текст

Вариант 2 через метод isDisplayed

Скрытый текст

 

В этом случае тест проходит 1 цикл и валится:

Скрытый текст

  • 0

#2 sergueik

sergueik

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

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 19 ноября 2021 - 01:30

мне кажется в обоих случаях надо перевычислять `j` и `check` внутри while


  • 0

#3 Ekaterina_grou

Ekaterina_grou

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Грузинцева Екатерина Сергеевна

Отправлено 23 ноября 2021 - 07:08

Спасибо, проверю


  • 0

#4 Ekaterina_grou

Ekaterina_grou

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Грузинцева Екатерина Сергеевна

Отправлено 23 декабря 2021 - 14:32

мне кажется в обоих случаях надо перевычислять `j` и `check` внутри while

Прошу прощения за задержку, переделала вот так:

Скрытый текст

Добилась только того, что цикл пробегает, потом валится (не происходит корректного выхода из цикла). Вот стектрейс

Скрытый текст

Такое чувство, что оно не может найти чекбокс, наличие которого на странице и надо проверять. И валится. Вот этого я не понимаю, по идее isDisplayed должен возвращать false и цикл должен прекращаться, переходя к следующему шагу.


  • 0

#5 sergueik

sergueik

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

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 23 декабря 2021 - 18:11

1. непонятно вас что депримируют за рост количества строк ? 
2. похоже слабая матчасть в том что findelemen вызывает a  findelements (множественное число ) не вызывает исключение а возвращает пустой когда нету

  • 0

#6 Ekaterina_grou

Ekaterina_grou

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Грузинцева Екатерина Сергеевна

Отправлено 24 декабря 2021 - 06:38

Yt 

 

 

1. непонятно вас что депримируют за рост количества строк ? 
2. похоже слабая матчасть в том что findelemen вызывает a  findelements (множественное число ) не вызывает исключение а возвращает пустой когда нету

 

 

 

1. непонятно вас что депримируют за рост количества строк ? 
2. похоже слабая матчасть в том что findelemen вызывает a  findelements (множественное число ) не вызывает исключение а возвращает пустой когда нету

 

Не поняла, причем здесь количество строк.

В последнем варинате я не использую findelements. Или вы предлагаете вернуться к первому варианту через счетчик в цикле while?


  • 0

#7 sergueik

sergueik

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

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 24 декабря 2021 - 13:32

простите имел в виду если бы findelement не был внутри  условия было бы легче обрабатывать исключения

 

и заметить что другой вызов их вообще не производит

но код стал бы чуть длиннее


  • 0

#8 Ekaterina_grou

Ekaterina_grou

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Грузинцева Екатерина Сергеевна

Отправлено 28 декабря 2021 - 12:03

простите имел в виду если бы findelement не был внутри  условия было бы легче обрабатывать исключения

 

и заметить что другой вызов их вообще не производит

но код стал бы чуть длиннее

Другой - это какой? Первый?


  • 0

#9 Ekaterina_grou

Ekaterina_grou

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Грузинцева Екатерина Сергеевна

Отправлено 28 декабря 2021 - 12:50

Победила...

Если кому интересно, правильно было вот так:

Скрытый текст

  • 0



Темы с аналогичным тегами selenium, java, webdriver, цикл

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

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