Я использую селен, и у меня есть два теста в моем классе unittest
(я следую учебному пособию). Я использую @classmethod
для setUpClass
. Каждый тест сам по себе работает, но оба вместе, как в моем коде ниже, не работают. Кажется, что переменные продукты во втором тесте остаются такими же, как и в первом тесте, поэтому длина равна 3 вместо 1. Это происходит, даже если я изменяю имя переменной. Итак, у меня есть AssertionError: 1 != 3
. Вероятно, потребуется время для загрузки результатов второго поиска
Почему так? Что я могу сделать?
import unittest
from selenium import webdriver
class SearchTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
# create a new Firefox session
cls.driver = webdriver.Firefox()
cls.driver.implicitly_wait(30)
cls.driver.maximize_window()
# navigate to the application home page
cls.driver.get("http://demo-store.seleniumacademy.com/")
cls.driver.title
def test_search_by_category(self):
# get the search textbox
self.search_field = self.driver.find_element_by_name("q")
self.search_field.clear()
# enter search keyword and submit
self.search_field.send_keys("phones")
self.search_field.submit()
# get all the anchor elements which have product names
# displayed currently on result page using
# find_elements_by_xpath method
products = self.driver.find_elements_by_xpath\
("//h2[@class='product-name']/a")
print('products', products)
self.assertEqual(3, len(products))
def test_search_by_name(self):
# get the search textbox
self.search_field = self.driver.find_element_by_name("q")
self.search_field.clear()
# enter search keyword and submit
self.search_field.send_keys("salt shaker")
self.search_field.submit()
# get all the anchor elements which have
# product names displayed
# currently on result page using
# find_elements_by_xpath method
products = self.driver.find_elements_by_xpath\
("//h2[@class='product-name']/a")
print('products',products)
self.assertEqual(1, len(products))
@classmethod
def tearDownClass(cls):
# close the browser window
cls.driver.quit()
if __name__ == '__main__':
unittest.main(verbosity=2)