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

Фотография

вложенный цикл


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

#1 moozee

moozee

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

  • Members
  • Pip
  • 58 сообщений
  • ФИО:Хомяк Виктор

Отправлено 20 февраля 2012 - 12:09

Помогите пожалуйста, во вложенном цикле for в тесте необходимо сделать ряд условий: а именно 1- проверка наличия всплывающего окна, при его наличии мы его закрываем и проверям наличие переменной в окне, следом закрываем браузер. в противном случае просто проверяем наличие переменной и тоже закрываем браузер.привожу код, работающий верно, но не закрывает браузер. где допустил ошибку?
import unittest
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import unittest, time, re,datetime,os,sys

class PythonOrgSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()
	
    def test_search_in_python_org(self):
		driver = self.driver
		driver.get("http://50.16.204.251/")
		inputElement = driver.find_element_by_id("username")
		inputElement.send_keys("moozee")
		time.sleep(1)
		inputElement1 = driver.find_element_by_id("password")
		inputElement1.send_keys("KARFAGEN")
		inputElement1.click()
		inputElement2 = driver.find_element_by_id("ext-gen31")
		inputElement2.click()
		time.sleep(15)
		i=0
		while (i==0):
			try:
				if driver.find_element_by_id("ext-gen162"):
					time.sleep(3)
					inputElement4 = driver.find_element_by_id("ext-gen162")
					inputElement4.click()
					if self.driver.find_element_by_id("ext-comp-1004"):
						element = driver.find_element_by_id("ext-comp-1004");
						element.click()
						print "Pop-up has been closed."
						print "You're succesfully logged on =)"
						i=1
						break
					else: self.fail("time out");
					break
				else: self.fail("SILENCE!!! I KILL U!! O.O");
			except:
				if self.driver.find_element_by_id("ext-comp-1004"):
					element = driver.find_element_by_id("ext-comp-1004")
					element.click()
					print "You're succesfully logged on without pop-up window =P"
				else: self.fail("time out");
def tearDown(self):
		self.driver.close()

if __name__ == "__main__":
		unittest.main()

  • 0

#2 point80

point80

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 20 февраля 2012 - 13:07

Поправьте отступы в коде. Нифига не понятно.
  • 0

#3 moozee

moozee

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

  • Members
  • Pip
  • 58 сообщений
  • ФИО:Хомяк Виктор

Отправлено 20 февраля 2012 - 13:15

Поправьте отступы в коде. Нифига не понятно.

исправил отступы.. мне просто легче было ориентироваться так..
  • 0

#4 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 20 февраля 2012 - 14:54

А def в середине не лишний?

...
      def tearDown(self):
      self.driver.close()
...    
def tearDown(self):
    self.driver.close()


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

#5 moozee

moozee

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

  • Members
  • Pip
  • 58 сообщений
  • ФИО:Хомяк Виктор

Отправлено 22 февраля 2012 - 06:42

Он завершает цикл, закрывает тест, но не закрывается браузер, остается окно браузера с обновленной страницей. не пойму, что не так..
  • 0

#6 point80

point80

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 22 февраля 2012 - 09:21

...
class PythonOrgSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

...	

def tearDown(self):
		self.driver.close()

if __name__ == "__main__":
		unittest.main()

Вся беда в отступах. Метод tearDown у Вас не принадлежит к тесту и поэтому не выполняется. Добавьте отступ и будет Вам счастье.
  • 0


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

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