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

Школа для начинающих тестировщиков
онлайн, начало 14 ноября
Тестирование REST API
онлайн, начало 18 ноября
Python для начинающих
онлайн, начало 13 ноября
Selenium WebDriver: полное руководство
онлайн, начало 15 ноября
Фотография

Элементы в цикле

python webdriver selenium

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

#1 andreykou

andreykou

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

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Андрей Куриленко

Отправлено 24 Август 2016 - 14:23

Привет всем,

 

У меня цикл:

 

elements1 = [

"//a[@href='/logout']",
"//li[@class='text-success']",
"//a[@id='menu_min']", # button to minimize menu
"//i[@class='delicious']", # check all icons after minimize
"//i[@class='newspaper-o']",
"//i[@class='info-circle']",
"//i[@class='-cog']",
"//i[@class='bank']",
"//i[@class='users']",
"//i[@class='sitemap']",
"//i[@class='signal']",
"//i[@class='music']",
"//i[@class='info-circle']",
"//a[@href='/support']",
"//i[@class='user']",
"//a[@id='menu_min']" # button to maximize menu
]

 

и есть loop for:

 

for element1 in elements1:
try:
browser.find_element_by_xpath(element1)
except Exception as e:
results.append(e)

 

проблема в том что я не могу создать условие в нутрии try что если найден элемент "//a[@id='menu_min']" 

то нужно выполнить click по этому елименту и пройтись по всем элиментам, а когда он доходит то элимента "//a[@id='menu_min']"

нужно опять выполнить click 

 

Спасибо за ответы!

 

 


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 24 Август 2016 - 14:51

elements1 - это не цикл , а коллекция,

а вот for и есть цикл.

Какую ошибку отдает ? из описания не очень понятно


  • 0

#3 andreykou

andreykou

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

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Андрей Куриленко

Отправлено 24 Август 2016 - 15:35

elements1 - это не цикл , а коллекция,
а вот for и есть цикл.
Какую ошибку отдает ? из описания не очень понятно


Ошибка моя. Это массив element1. Просто хочу зделать условие, что если он находит элимент в массиве выполнить по нему click
  • 0

#4 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 24 Август 2016 - 15:59

почему ты не можешь создать условие внутру try ?


  • 0

#5 andreykou

andreykou

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

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Андрей Куриленко

Отправлено 24 Август 2016 - 16:46

почему ты не можешь создать условие внутру try ?


Если я пишу

If element1 == "//a[@id='menu_min']":
browser.find_element_by_xpath("//a[@id='menu_min']").click()

Нечего непроисходит. Он пробегается по всем елиментам и все.
  • 0

#6 Freiman

Freiman

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 450 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 25 Август 2016 - 05:08

If element1 == "//a[@id='menu_min']":
browser.find_element_by_xpath("//a[@id='menu_min']").click()

Нечего непроисходит. Он пробегается по всем елиментам и все.

А локатор вообще верный?

Ну и такой способ, честно говоря, извращение немного.
Вынесите клики из коллекции в отдельные команды, в ней оставьте только то, что надо проверять
  • 0

#7 andreykou

andreykou

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

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Андрей Куриленко

Отправлено 25 Август 2016 - 05:39

 

If element1 == "//a[@id='menu_min']":
browser.find_element_by_xpath("//a[@id='menu_min']").click()

Нечего непроисходит. Он пробегается по всем елиментам и все.

А локатор вообще верный?

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

 

 

Все вроде правильно.

Я тоже думал вынести все клики.

 

А как можно создать отдельный код а потом сделать на него import в код?


  • 0

#8 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 25 Август 2016 - 07:55

Все вроде правильно.

Я тоже думал вынести все клики.

 

А как можно создать отдельный код а потом сделать на него import в код?

 

ты можешь наследовать класс из которого хочешь дернуть функцию

class test(test_parent):

  • 1

#9 elvis

elvis

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

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 26 Август 2016 - 07:32

"условие в нутрии:rofl:

 55654.jpg


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




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

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

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

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