t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как дебажить в Pydev?


(Garik) #1

Сорри за такой вопрос. История возникновения вопроса:

1. Решил написать скрипт для автоматизированного добавления продукта в интернет-магазин на движке Magento (после просмотра доклада Д. Романова нв MageConf - http://video.yandex.ua/users/mageconf/view/9/?cauthor=mageconf&cid=1).  Создал сначала в Selenium IDE- там все работает. Решил на Python (это всего 2-й мой скрипт!!!). И тут началось.

Для выбора пункта меню, для которого надо сначала нажать на пункт меню "Катало" --> "Manage Product" написал команду: 

driver.find_element_by_xpath("//*[@id='nav'] //li[a/span='Manage Products']/a").click()

Под Selenium-ом IDE команда работает. Под Pydev-ом - нет. Прогуглил и нашел интересный скрипт с похожим функционалом: (http://automated-testing.info/forum/rabota-webdriver-i-java-skript-imitaciya-nazhatiya-klavish)

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
d = webdriver.Firefox()
d.get("http://onliner.by")
e = d.find_element_by_id("g-search-input")
e.send_keys("nokia")
time.sleep(2)
e.send_keys(Keys.DOWN+Keys.DOWN+Keys.DOWN+Keys.ENTER)
time.sleep(2)
d.close()
2.Создал новый модуль Pydev c вышеприведенным кодом, запускаю и команды Keys.Down -не выполняются. Решил продебажить и нет нигде информации как это делать! Подскажите или ссылочку на видео. Или решение моей проблемы. Спс!
 

(Mykhailo Poliarush) #2

самое первое, что вам надо удостовериться, что ваш python и selenium отрабатывают нормально

для этого я бы вам рекомендовал использовать python interpratator

некоторые заметки по написанию самого простого теста, который работает вы можете посмотреть тут 

для того чтобы выполнять комманды в python interpratator последовательно, и вы сможете видеть все что происходит

но в PyDev также есть дебаг, только это двумя словами не опишешь, а видео у я такого не видел.

зато есть вот такая вот ссылочка, может быть она вам поможет, http://pydev.org/manual_adv_debugger.html


(Garik) #3

Миша, гранд спс, за ответ!

Посмотрел, освежил память. Выполнил выше приведенный скрипт в python interpratator - получилось также как в Pydev-e. Попробовал вместо:

e.send_keys(Keys.DOWN+Keys.DOWN+Keys.DOWN+Keys.ENTER)

сделал так:

e.send_keys(Keys.DOWN)
e.send_keys(Keys.DOWN)
e.send_keys(Keys.ENTER)

Key.DOWN - выполняются, а Key.ENTER - выполнелось на элементе "Search" (e = d.find_element_by_id("g-search-input")), что привело к не правильному результату.

А именно:

вместо того чтобы из выпадающего списка опуститься на 2-й элемент и зайти на этот продукт, сначала опустился на пункта (что правильно), а потом произошел поиск "nokia" c выводом листа продуктов. Т.е произошел Enter на элементе "Search", а не на выпадающем списке!

Т.е. в коде неточность, а какая?!