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

zolkin

Регистрация: 20 апр 2012
Offline Активность: 26 июн 2019 16:40
-----

Мои темы

Python + Selenium webdriver +Page object + я новенький + Ожидания

28 января 2016 - 08:52

Подскажите пожалуйста.

Использую selenium неделю.

В программировании, тоже особо не селен знаю азы.

Создаю 3 файла.

1.Файл,где я храню локаторы (lokators.py)

В нем я пишу следующее:

 

class MainPageLocators(object):

TITLE_19_1 = (By.Xpath, '//treeitem/ul/li[1]'/div/span)

TITLE_19_1 = (By.Xpath, '//treeitem/ul/li[2]'/div/span)

 

ну и тд

2.Файл(page), где как я понял я храню класс страницы в котором описываю действия над элементами из файла lokators.py

В нем я пишу что то типа 

 

class BasePage(object):

def __init__(self, driver):

   self.driver = driver

 

 

class MainPage(BasePage):

 

определяю методы,которые ждет появления элемента на странице и жмет на него вот таким образом

 

def click_button(self, by , btn)

 wait = WebDriverWait(self.driver, 10)

 try:

     element = wait.until(lamda driver: self.driver.find_element(by, btn)).click()

 expect TimeoutException:

print "что то"

 

 

def click_to_type_ref(self, by , ref)

 wait = WebDriverWait(self.driver, 10) ----не работает как задумано или я что то не понимаю

 try:

     element = wait.until(lamda driver: self.driver.find_element(by, ref)).click()

 expect TimeoutException:

 

 

3.Собственно файл где я пишу тесты использую Unittest

 

class SimpleTestCase(unittest.TestCase):

 

def setUp(self):

     self.driver =webdriver.Firefox() 

     self.driver.get("")

     self.driver.implisetly_wait(10) ---- не работает тут тоже указал ждать

 

Собственно тест

def create_19_1_form(self):

main_page =page.MainPage(self.driver)

main_page.click_donos_link() ## Метод не описал но он просто жмет на ссылку

self.driver.self.driver.impliсetly_wait(10)              !!!!!!Если удалить эту строчку кода тесты не выполняются!!!!!!!

main_page.click_button(*MainPageLocators.ADD_BUTTON)

self.driver.self.driver.implisetly_wait(10)  !!!! Иногда сюда приходиться дописывать

main_page.click_to_type_ref(*MainPageLocators.TITLE_19_1)

assert "Текст" in "Какой то текст"

 

 

 

Подскажите пожалуйста, почему в тесте если убрать строчку ожидания все ломается!!(Выдается ошибка StateElementReferenceException:Element no found in the cash)???? Причем не постоянно,то проходят все тесты то падает все...Если оставить ожидания именно перед теми строчками, что иногда ломаются() в самом тесте процентов 99% тесты проходят Может ли быть проблема в браузере FIREFOX 29 версии другую использовать никак не могу((((


Анализ граничных значений

03 декабря 2015 - 08:31

Подскажите пожалуйста! 

Раньше как то не пользовался никакими техниками,была документация и тесты выполнялись строго по ней.

Есть веб приложение написанное на python(как я понимаю при помощи фреймворка pyramid)

Есть база данных на Postgresql

Есть структура базы данных(набор таблиц связи и тд)

Связь с базой, если я правильно понимаю происходит средствами sqlalchimy.Немного почитав, как я понял, на каждую таблицу пишется отдельный отдельный класс на python, потом класс как то "Мапится" с самой таблицей и мы получаем связь таблицы из базы с классом на python и можем работать с объектами данного класса.

В браузере есть формы, которые пользователь заполняет и потом сохраняет это в базу.

Приложение разбирает формы и кладет в соответствующие поля в таблицы значения из форм.

 

Вопрос:

Стоит ли проверять такие значения:

Есть поле "Тип мероприятия"(форма в браузере с таким названием) я знаю, что в базу значение этого поля положится в определенное поле тип которого varchar(2048).Стоит ли при тестировании вводить в поля значения 2047 2048 и 2049 символов.

Так же вопрос поле "количество людей" тип имеет Integr стоит ли проверять ввод в него -2147483648,-2147483647,-2147483649

 

 

И какие вообще подскажите варианты тестирование данного приложения.


Не переходит на по @base_url

09 марта 2015 - 07:21

Только начал изучать Ruby + Webdriver.Записал простой тест через Selenium IDE,экспортировал в Ruby + Test::Unit.

При попытке запуска из командной строки открывается браузер, но переход по base_url не происходит.Ну и как я понимаю следующие ошибки уже выдает драйвер, в течении 60 секунд не была загружена страничка.

 

require "json"
require "selenium-webdriver"
gem "test-unit"
require "test/unit"
 
class FirstTest < Test::Unit::TestCase
 
  def setup
    @driver = Selenium::WebDriver.for :firefox
    @base_url = "http://code.google.com"
    @accept_next_alert = true
    @driver.manage.timeouts.implicit_wait = 30
    @verification_errors = []
  end
  
  def teardown
    @driver.quit
    assert_equal [], @verification_errors
  end
  
  def test_first
    @driver.get(@base_url + "/p/selenium/issues/list?can=2&q=&sort=summary&colspec=ID%20Stars%20Type%20Status%20Priority%20Milestone%20Owner%20Summary")
    @driver.find_element(:link, "Wiki").click
    @driver.find_element(:link, "Downloads").click
  end