Что означают строки 3,16,17,18 и 19, выделенные *. Может кто-нибудь объяснить, что они делают? Я новичок в Python и программировании
import unittest
from selenium import webdriver
**class Iframe(unittest.TestCase):**
def setUp(self):
self.driver = webdriver.Firefox()
def test_Iframe(self):
driver = self.driver
driver.maximize_window()
driver.get('http://www.toolsqa.com/iframe-practice-page/')
iframe1 = driver.find_element_by_id('IF1')
driver.switch_to.frame(iframe1)
driver.find_element_by_name('email').send_keys('xyz')
driver.switch_to.default_content()
list = driver.find_elements_by_tag_name('iframe')
print(len(list))
**def tearDown(self):
self.driver.quit()**
**if __name__ == '__main__':
unittest.main()**






Только три строки в этом коде выделены *, но вот что они означают:
class Iframe(unittest.TestCase):
Это объявляет класс для следующих функций (test_Iframe и срывать). класс используется для создания «объектов» в объектно-ориентированное программирование. Думайте о класс как об абстракции данных / процедур, а объект - это конкретный экземпляр класса.
def tearDown(self):
self.driver.quit()
В этом разделе сначала объявляется функция с ключевым словом def, и функция завершает работу драйвера, который был установлен как:
driver = self.driver
driver.maximize_window()
driver.get('http://www.toolsqa.com/iframe-practice-page/')
в функции test_Iframe().
if __name__ == '__main__':
unittest.main()
Этот раздел просто выполняет основную функцию программы. Подробнее об этом можно прочитать в здесь.
Позвольте мне знать, если у вас есть какие-либо другие вопросы!
Поскольку вы решили использовать Python модульный тест, вот соответствующая информация:
import unittest: Вам необходимо импортировать требуемый модуль модульный тест в качестве обязательной меры.class Iframe(unittest.TestCase):: класс тестового примера унаследован от unittest.TestCase. Наследование от класса Прецедент - это способ сообщить модулю модульный тест, что это тестовый пример.def setUp(self):: настраивать является частью инициализации, и этот метод будет вызываться перед каждой тестовой функцией, которую вы собираетесь написать в этом классе тестового примера.def test_Iframe(self):: это фактический метод прецедент. Метод прецедент всегда должен начинаться с символов контрольная работа.def tearDown(self):: метод срывать будет вызываться после каждого метода тестирования. Это метод для выполнения всех действий по очистке.if __name__ == '__main__':: Эта строка устанавливает для переменной __name__ значение "__main__". Если этот файл импортируется из другого модуля, __name__ будет установлен на имя другого модуля. Вы найдете подробное обсуждение в Что делать, если название == "основной": делать?unittest.main(): вызывает тестовые функции из настроенного модуля.Note A: For more details see Using Selenium to write tests and Walk through of the example
Note B: Refer A module's name for complete details.
Первый аргумент каждого метода класса, включая init, всегда является ссылкой на текущий экземпляр класс. По соглашению этот аргумент всегда называется self. В методе initself относится к вновь созданному объекту, а в методах других классов - к экземпляру, метод которого был вызван.
Самостоятельная переменная в Python объяснила
@Aayush Ознакомьтесь с моим обновлением ответов и дайте мне знать, если у вас возникнут вопросы.
Debanjan, спасибо за объяснение. Не могли бы вы прислать пример для этого. Как это работает и зачем это нужно? Поскольку я новичок в программировании, у меня нет никаких предварительных знаний о языках и ООП, и я не могу полностью понять содержание книг.
Привет Дебанджан, Эта ссылка pythontips.com/2013/08/07/the-self-variable-in-python-explai ned была действительно полезной. У вас есть такая же ссылка для Unittest?
@Aayush Пройдите по ссылкам в Примечание А и Примечание B, которые охватывают основные понятия.
Привет, Дебанджан, у меня есть одно сомнение в следующих строках «class Iframe (unittest.TestCase):: Класс testcase унаследован от unittest.TestCase. Наследование от класса TestCase - это способ сообщить модулю unittest, что это тестовый набор». Разве в этом нельзя просто написать вот так - класс Iframe (TestCase)?
Привет Дебанджан! Почему мы здесь используем себя?