コード例 #1
0
class CompanyListTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(
            command_executor='http://127.0.0.1:4444/wd/hub',
            desired_capabilities=getattr(DesiredCapabilities, browser).copy()
        )
        self.page = CompaniesPage(self.driver)
        self.page.open()
        self.list = self.page.company_list

    def test_check_links(self):
        for link in self.list.links():
            self.assertTrue(self.list.check_link(link))

    def test_check_redirect(self):
        companies = self.list.get_all_companies()
        for i in companies:
            self.list.go_to_company_page(i)
            #self.page.wait_for_another_page()
            expected_title = i + u" в Москве"
            self.assertEquals(expected_title, self.page.get_title())
            self.driver.back()

    def tearDown(self):
       # self.page.close()
        self.driver.quit()
コード例 #2
0
class CompanyListTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())
        self.page = CompaniesPage(self.driver)
        self.page.open()
        self.list = self.page.company_list

    def test_check_links(self):
        for link in self.list.links():
            self.assertTrue(self.list.check_link(link))

    def test_check_redirect(self):
        companies = self.list.get_all_companies()
        for i in companies:
            self.list.go_to_company_page(i)
            #self.page.wait_for_another_page()
            expected_title = i + u" в Москве"
            self.assertEquals(expected_title, self.page.get_title())
            self.driver.back()

    def tearDown(self):
        # self.page.close()
        self.driver.quit()
コード例 #3
0
class MedicamentsClassificationTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('TTHA2BROWSER', 'CHROME')

        self.driver = Remote(
            command_executor='http://127.0.0.1:4444/wd/hub',
            desired_capabilities=getattr(DesiredCapabilities, browser).copy()
        )
        self.page = MedicamentsPage(self.driver)
        self.page.open()
        self.classification_list = self.page.classification

    def test_drug_type_selection(self):
        text = u"Витамины"
        self.classification_list.to_link(text)
        self.page.wait_for_another_page()
        self.assertEquals(text, self.classification_list.get_title())
        self.driver.back()
        text = u"Миорелаксанты"
        self.classification_list.to_link(text)
        self.page.wait_for_another_page()
        self.assertEquals(text, self.classification_list.get_title())

    def tearDown(self):
        self.page.close()
        self.driver.quit()
コード例 #4
0
ファイル: catalog_test.py プロジェクト: andyudina/homework-4
class CatalogTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(
            command_executor='http://127.0.0.1:4444/wd/hub',
            desired_capabilities=getattr(DesiredCapabilities, browser).copy()
        )
        self.page = DrugsPage(self.driver)
        self.page.open()
        self.catalog = self.page.catalog

    def test_check_link(self):
        for link in self.catalog.links():
            self.assertTrue(self.catalog.check_link(link))

    def test_check_redirect(self):
        text = u"Витамины"
        self.catalog.to_link(text)
        #self.page.wait_for_another_page()
        self.assertEquals(text, self.page.get_title())
        self.driver.back()
        text = u"Миорелаксанты"
        self.catalog.to_link(text)
        #self.page.wait_for_another_page()
        self.assertEquals(text, self.page.get_title())

    def tearDown(self):
        #self.page.close()
        self.driver.quit()
コード例 #5
0
class CatalogTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())
        self.page = DrugsPage(self.driver)
        self.page.open()
        self.catalog = self.page.catalog

    def test_check_link(self):
        for link in self.catalog.links():
            self.assertTrue(self.catalog.check_link(link))

    def test_check_redirect(self):
        text = u"Витамины"
        self.catalog.to_link(text)
        #self.page.wait_for_another_page()
        self.assertEquals(text, self.page.get_title())
        self.driver.back()
        text = u"Миорелаксанты"
        self.catalog.to_link(text)
        #self.page.wait_for_another_page()
        self.assertEquals(text, self.page.get_title())

    def tearDown(self):
        #self.page.close()
        self.driver.quit()
コード例 #6
0
class MedicamentsClassificationTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('TTHA2BROWSER', 'CHROME')

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())
        self.page = MedicamentsPage(self.driver)
        self.page.open()
        self.classification_list = self.page.classification

    def test_drug_type_selection(self):
        text = u"Витамины"
        self.classification_list.to_link(text)
        self.page.wait_for_another_page()
        self.assertEquals(text, self.classification_list.get_title())
        self.driver.back()
        text = u"Миорелаксанты"
        self.classification_list.to_link(text)
        self.page.wait_for_another_page()
        self.assertEquals(text, self.classification_list.get_title())

    def tearDown(self):
        self.page.close()
        self.driver.quit()
コード例 #7
0
class MedicamentsTestLeadersOfSellsTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(
            command_executor='http://127.0.0.1:4444/wd/hub',
            desired_capabilities=getattr(DesiredCapabilities, browser).copy()
        )
        self.page = MedicamentsPage(self.driver)
        self.page.open()
        self.list = self.page.leaders_of_sells

    def test_select_one_from_list(self):
        drug = self.list.get_drags_name(2)
        self.list.go_to_drugs_page(drug)
        self.page.wait_for_another_page()
        self.assertEquals(drug, self.list.result_drag())
        self.driver.back()
        drug = self.list.get_drags_name(4)
        self.list.go_to_drugs_page(drug)
        self.page.wait_for_another_page()
        self.assertEquals(drug, self.list.result_drag())


    def tearDown(self):
        self.page.close()
        self.driver.quit()
コード例 #8
0
class MedicamentsTestLeadersOfSellsTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())
        self.page = DrugsPage(self.driver)
        self.page.open()
        self.drugs = self.page.leaders_of_sells

    def test_check_redirect(self):
        drags_names = self.drugs.get_all()
        for name in drags_names:
            self.drugs.go_to_drugs_page(name)
            #self.page.wait_for_another_page()
            self.assertEquals(name, self.page.get_title())
            self.driver.back()

    def tearDown(self):
        #self.page.close()
        self.driver.quit()
コード例 #9
0
ファイル: analogs_test.py プロジェクト: andyudina/homework-4
class AnalogsTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())
        self.page = DrugPage(self.driver, 'vizarsin')
        self.page.open()
        self.analogs = self.page.analogs

    def test_analogs(self):
        drags_names = self.page.analogs.get_names()
        for name in drags_names:
            self.page.analogs.go_to_drugs_page(name)
            #self.page.wait_for_another_page()
            self.assertEquals(
                name.split(',')[0], self.page.analogs.result_drag())
            self.driver.back()

    def tearDown(self):
        # self.page.close()
        self.driver.quit()
コード例 #10
0
ファイル: analogs_test.py プロジェクト: andyudina/homework-4
class AnalogsTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(
            command_executor='http://127.0.0.1:4444/wd/hub',
            desired_capabilities=getattr(DesiredCapabilities, browser).copy()
        )
        self.page = DrugPage(self.driver, 'vizarsin')
        self.page.open()
        self.analogs = self.page.analogs

    def test_analogs(self):
        drags_names = self.page.analogs.get_names()
        for name in drags_names:
            self.page.analogs.go_to_drugs_page(name)
            #self.page.wait_for_another_page()
            self.assertEquals(name.split(',')[0], self.page.analogs.result_drag())
            self.driver.back()

    def tearDown(self):
       # self.page.close()
        self.driver.quit()
コード例 #11
0
class MedicamentsTestLeadersOfSellsTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(
            command_executor='http://127.0.0.1:4444/wd/hub',
            desired_capabilities=getattr(DesiredCapabilities, browser).copy()
        )
        self.page = DrugsPage(self.driver)
        self.page.open()
        self.drugs = self.page.leaders_of_sells

    def test_check_redirect(self):
        drags_names = self.drugs.get_all()
        for name in drags_names:
            self.drugs.go_to_drugs_page(name)
            #self.page.wait_for_another_page()
            self.assertEquals(name, self.page.get_title())
            self.driver.back()

    def tearDown(self):
        #self.page.close()
        self.driver.quit()
コード例 #12
0
class CounterTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(
            command_executor='http://127.0.0.1:4444/wd/hub',
            desired_capabilities=getattr(DesiredCapabilities, browser).copy()
        )
        self.page = DrugPage(self.driver, 'vizarsin')
        self.page.open()
        self.counter = self.page.counter

    def test_counter_visible(self):
        self.assertFalse(self.counter.counter_is_visible())
        self.counter.to_order()
        self.counter.selected_dropdown_item_by_number(1)
        self.assertTrue(self.counter.counter_is_visible())

    def test_counter(self):
        self.page.login()
        self.counter.to_order()
        self.counter.selected_dropdown_item_by_number(1)
        self.assertEquals(1, int(self.counter.get_counter_value()))
        self.counter.increment()
        self.counter.increment()
        self.assertEquals(3, int(self.counter.get_counter_value()))
        self.counter.decrement()
        self.assertEquals(2, int(self.counter.get_counter_value()))

    def test_counter_in_basket(self):
        self.page.login()
        self.counter.to_order()
        self.counter.selected_dropdown_item_by_number(1)
        self.counter.do_order()
        #self.page.wait_for_another_page()
        self.assertEquals(1, int(self.counter.get_counter_value()))
        self.driver.back()
        self.counter.increment()
        self.counter.increment()
        self.counter.do_order()
        #self.page.wait_for_another_page()
        self.assertEquals(3, int(self.counter.get_counter_value()))
        self.driver.back()
        self.counter.decrement()
        self.counter.do_order()
        #self.page.wait_for_another_page()
        self.assertEquals(2, int(self.counter.get_counter_value()))

    def test_negative_counter_value(self):
        self.counter.to_order()
        self.counter.selected_dropdown_item_by_number(1)
        self.counter.decrement()
        self.assertFalse(self.counter.counter_is_visible())

    def test_check_type(self):
        self.page.login()
        self.counter.to_order()
        types = self.counter.dropdown_items()
        for t in types:
            self.counter.selected_dropdown_item(t)
            self.counter.do_order()
         #   self.page.wait_for_another_page()
            self.assertEquals(t, self.counter.result_type())
            self.driver.back()
            self.counter.decrement()
            self.counter.to_order()

    def tearDown(self):
        #self.page.close()
        self.driver.quit()
コード例 #13
0
ファイル: BasePage.py プロジェクト: zhaowen13/ui
class BasePage(object):
    def __init__(self, project_name):
        self.driver = ''
        self.loc = ''
        self.project_name = project_name
        yamlPath = "user.yaml"
        yaml.load(yamlPath, Loader=yaml.BaseLoader)
        yaml.warnings({'YAMLLoadWarning': False})
        f = open(yamlPath, 'r')
        temp = yaml.load(f.read())
        self.url = temp[project_name]['url']
        self.username = temp[project_name]['username']
        self.password = temp[project_name]['password']

    def open(self,
             browser="chrome",
             host='http://localhost:8081/wd/hub'
             ):  # 初始化 打开浏览器 并最大化  self 与java中的this中一样,调用时不用传入self参数
        try:
            self.driver = Remote(command_executor=host,
                                 desired_capabilities={
                                     'platform': 'ANY',
                                     'browserName': browser,
                                     'version': '',
                                     'javascriptEnabled': True
                                 })
            self.driver.maximize_window()
        except Exception as e:
            print(e)

        logger_cls.info(u"打开{0}浏览器".format(browser))
        logger_cls.info(u"最大化")

    def get(self):
        try:
            self.driver.get(self.url)
            self.driver.implicitly_wait(10)  # 隐性等待,最长等10秒
            logger_cls.info(u'打开:{0}'.format(self.url))
        except BaseException:
            logger_cls.error(u'打开{0}失败'.format(self.url))
        self.loc = loc.Analyze(self.project_name)  #初始化,读取xml 赋值给loc

    def find(self, name):  #元素定位,并返回定位好的元素
        try:
            el = WebDriverWait(self.driver, 3,
                               0.5).until(  #设置显示等待时间,每0.5秒检查一次,如果超出指定值就报错
                                   EC.presence_of_element_located(
                                       (self.loc[name].type,
                                        self.loc[name].UIIdentifier)))
            logger_cls.info(u'定位元素:{0}'.format(name))
            # logger_cls.info(loc[name].value)
        except BaseException:
            logger_cls.error(u'定位元素:{0}失败'.format(name))
        return el

    def send_keys(self, name, text):
        try:
            self.find(name).send_keys(text)
            logger_cls.info(u'在:{0}输入{1}'.format(name, text))
            time.sleep(3)
        except BaseException:
            logger_cls.error(u'在:{0}输入{1}失败'.format(name, text))

    def click(self, name):
        try:
            self.find(name).click()
            logger_cls.info(u'点击:{0}'.format(name))
            time.sleep(3)
        except BaseException:
            logger_cls.error(u'点击:{0}失败'.format(name))

    def being(self, name):
        t = False
        try:
            self.driver.find_element_by_xpath(self.loc[name].UIIdentifier)
            t = True
            logger_cls.info(u'{0}元素存在'.format(name))
        except BaseException:
            logger_cls.info(u'{0}元素不存在'.format(name))
        return t

    def login(self):
        self.get()
        self.send_keys(u'用户名', self.username)
        self.send_keys(u'密码', self.password)
        self.click(u'登录')
        time.sleep(3)
        if self.being(u'不再提示'):
            self.click(u'不再提示')
        # self.get_version()

    def clearmonitor(self):
        names = [u'博主', u'博主圈']
        self.click(u'事件')
        if self.being(u'是否有事件'):
            self.focus(u'找回')
            self.click(u'多选')
            self.click(u'全选')
            self.click(u'删除')
        for name in names:
            self.click(name)
            if self.being(u'是否有博主'):
                self.focus(u'找回')
                self.click(u'多选')
                self.click(u'全选')
                self.click(u'删除')

    def randomclick(self, name, div=None):
        text = ''
        i = len(self.driver.find_elements_by_xpath(
            self.loc[name].UIIdentifier))
        logger_cls.info(u'{0}列表中有{1}个参数'.format(name, i))
        y = random.randint(1, i)
        if div == None:
            path = self.loc[name].UIIdentifier + '[' + str(y) + ']'
            text = self.driver.find_element_by_xpath(path).text
            self.driver.find_element_by_xpath(path).click()
            logger_cls.info(u'随机选择列表中的{0}第个参数并点击'.format(y))
        else:
            i2 = len(
                self.driver.find_elements_by_xpath(
                    self.loc[name].UIIdentifier + '[' + str(y) + ']'))
            y2 = random.randint(1, i2)
            path = self.loc[name].UIIdentifier + '[' + str(y2) + ']' + div
            text = self.driver.find_element_by_xpath(path).text
            self.driver.find_element_by_xpath(path).click()
            logger_cls.info(u'随机选择列表中的{0}第个参数并点击'.format(y2))

        logger_cls.info(u'{0}:文本的值为:{1}'.format(name, text))
        time.sleep(3)
        return text

    def close(self):
        logger_cls.info(u'3秒后关闭当前页面')
        time.sleep(3)
        self.driver.close()

    def quit(self):
        logger_cls.info(u'3秒后关闭浏览器')
        time.sleep(3)
        self.driver.quit()

    def get_url(self):
        url = self.driver.current_url
        logger_cls.info(u'当前页面url:' + url)
        return url

    def get_text(self, name):
        text = self.find(name).text
        logger_cls.info(u'{0}文本框的值为:{1}'.format(name, text))
        return text

    def back(self):
        self.driver.back()
        logger_cls.info(u'返回上一页面')

    def clear(self, name):
        self.find(name).clear()
        logger_cls.info(u'清空文本框:{0}'.format(name))

    def get_name(self):
        name = self.driver.name
        logger_cls.info(u'浏览器名称:{0}'.format(name))

    def get_driver(self):
        return self.driver

    def get_version(self):
        version = self.driver.capabilities['version']
        logger_cls.info(u'浏览器版本:{0}'.format(version))
        return version

    def switch_to(self):
        self.driver.switch_to.window(self.driver.window_handles[-1])
        logger_cls.info(u'切换页面')

    def focus(self, name):
        ele = self.find(name)
        ActionChains(self.driver).move_to_element(ele).perform()
        logger_cls.info(u'鼠标悬停到元素:{0}'.format(name))

    def refresh(self):
        self.driver.refresh()
        logger_cls.info(u'刷新页面')

    def title(self):
        title = self.driver.title
        logger_cls.info(u'当前页面标题' + title)
        return title

    def Slide(self, height):
        js = "var q=document.documentElement.scrollTop={0}".format(str(height))
        self.driver.execute_script(js)
        logger_cls.info(u'上下滑动' + str(height))

    def sleep(self, i):
        logger_cls.info(u'暂停{0}秒'.format(i))
        time.sleep(int(i))

    def Screenshot(self, name):
        # name='screenshot_'
        isExists = os.path.exists("../images\\")
        # 判断结果
        if not isExists:
            # 如果不存在则创建目录
            # 创建目录操作函数
            os.makedirs("../images\\")
            print u'创建images目录'
        timestrmap = time.strftime('%Y%m%d_%H%M%S')
        imgPath = os.path.join('../images\\', str(timestrmap) + name + '.png')
        self.driver.save_screenshot(imgPath)
        logger_cls.info(u'截图:{0}{1}.png'.format(str(timestrmap), name))
コード例 #14
0
ファイル: tests.py プロジェクト: Evfrosiniya/homework-4
class Test(unittest.TestCase):
    USEREMAIL = os.environ['USEREMAIL']
    PASSWORD = os.environ['PASSWORD']

    MESSAGE_TEXT = u'Привет! Тебе сообщение)'
    EMPTY_MESSAGE_TEXT = ' \n \t\t   '
    STYLE = 'display: block'
    ERROR_TYPE = u'Пожалуйста, выберите изображение (jpg/gif/png).'
    ERROR_SIZE = u'Размер изображения не должен превышать 20 Мб.'
    BIG_IMG_PATH = '/Zebras.jpg'
    NOT_IMG_PATH = '/basic.py'

    def setUp(self):
        browser = os.environ.get('BROWSER', 'CHROME')

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())

        auth_page = AuthPage(self.driver)
        auth_page.open()

        auth_form = auth_page.form
        auth_form.open_form()
        auth_form.set_login(self.USEREMAIL)
        auth_form.set_password(self.PASSWORD)
        auth_form.submit()

        user_name = auth_page.top_menu.get_username()

        create_page = CreatePage(self.driver)
        create_page.open()
        create_page.message_open()

    def test_send_message(self):
        message_form = MessageForm(self.driver)
        message_form.set_message_text(self.MESSAGE_TEXT)
        message_form.message_send()
        last_message_text = message_form.get_last_message_text()
        self.assertEqual(self.MESSAGE_TEXT, last_message_text)

    def test_send_empty_message(self):
        message_form = MessageForm(self.driver)
        message_form.set_message_text(self.EMPTY_MESSAGE_TEXT)
        message_form.message_send()
        messagebox_text = message_form.get_textarea_value()
        self.assertNotEqual(messagebox_text, u'')

    def test_go_to_the_dialogues(self):
        message_form = MessageForm(self.driver)
        message_form_url = self.driver.current_url
        message_form.back_to_dialogs()
        dialogs_url = self.driver.current_url
        self.assertNotEqual(message_form_url, dialogs_url)

    def test_go_to_the_friend_page(self):
        message_form = MessageForm(self.driver)
        message_form_friend_name = message_form.friend_name()
        message_form.go_to_friend_page()
        user_form = UserForm(self.driver)
        friend_name = user_form.user_name()
        self.assertEqual(message_form_friend_name, friend_name)

    def test_check_time(self):
        message_form = MessageForm(self.driver)
        message_form.set_message_text(self.MESSAGE_TEXT)
        message_form.message_send()
        last_message_time = message_form.get_last_message_time()
        self.assertEqual(datetime.strftime(datetime.now(), '%H:%M:%S'),
                         str(last_message_time))

    def test_avatar(self):
        self.driver.back()
        dialog_form = DialogForm(self.driver)
        dialog_avatar_src = dialog_form.get_dialogs_avatar_src()
        dialog_form.go_to_user_page()
        user_form = UserForm(self.driver)
        avatar_src = user_form.get_avatar_src()
        self.assertEqual(dialog_avatar_src, avatar_src)

    def test_open_close_img_window(self):
        message_form = MessageForm(self.driver)
        message_form.open_img_window()
        self.assertTrue(message_form.display_img_window())
        message_form.close_img_window()
        self.assertFalse(message_form.display_img_window())

    def test_cancel_add_img(self):
        message_form = MessageForm(self.driver)
        message_form.open_img_window()
        message_form.cancel_add_img()
        self.assertFalse(message_form.display_img_window())

    def test_download_unselected_img(self):
        message_form = MessageForm(self.driver)
        message_form.open_img_window()
        message_form.download_img()
        error_message = message_form.get_error_message()
        self.assertEqual(error_message, self.ERROR_TYPE)

    def test_download_big_or_not_img(self):
        message_form = MessageForm(self.driver)
        message_form.open_img_window()
        message_form.choose_img_button()
        message_form.choose_img(self.BIG_IMG_PATH)
        message_form.download_img()
        error_message = message_form.get_error_message()
        self.assertEqual(error_message, self.ERROR_SIZE)
        self.driver.refresh()
        message_form.open_img_window()
        message_form.choose_img_button()
        message_form.choose_img(self.NOT_IMG_PATH)
        message_form.download_img()
        error_message = message_form.get_error_message()
        self.assertEqual(error_message, self.ERROR_TYPE)

    def tearDown(self):
        self.driver.quit()
コード例 #15
0
class MedicamentPageTest(unittest.TestCase):
    def setUp(self):
        browser = os.environ.get('HW4BROWSER', 'CHROME')

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())
        self.page = MedicamentPage(self.driver, 'vizarsin')
        self.page.open()

    def test_contraindications(self):
        self.assertTrue(self.page.contraindication.check_links())

    def test_counter(self):
        self.page.login()
        self.page.to_order()
        self.page.selected_type(1)
        self.assertEquals(1, int(self.page.get_number()))
        self.page.increment()
        self.page.increment()
        self.assertEquals(3, int(self.page.get_number()))
        self.page.decrement()
        self.assertEquals(2, int(self.page.get_number()))

    #проверка инкримента/дикримента в корзине
    def test_counter_in_basket(self):
        self.page.login()
        self.page.to_order()
        self.page.selected_type(1)
        self.page.do_order()
        self.page.wait_for_another_page()
        self.assertEquals(1, int(self.page.get_number_in_basket()))
        self.driver.back()
        self.page.increment()
        self.page.increment()
        self.page.do_order()
        self.page.wait_for_another_page()
        self.assertEquals(3, int(self.page.get_number_in_basket()))
        self.driver.back()
        self.page.decrement()
        self.page.do_order()
        self.page.wait_for_another_page()
        self.assertEquals(2, int(self.page.get_number_in_basket()))

    #проверка появление счетчика после выбора типа
    def test_counter_visible(self):
        self.assertFalse(self.page.counter_is_visible())
        self.page.to_order()
        self.page.selected_type(1)
        self.assertTrue(self.page.counter_is_visible())

    #проверка что нельзя ввести отрицательные значения
    def test_negative_counter_value(self):
        self.page.to_order()
        self.page.selected_type(1)
        self.page.decrement()
        self.assertFalse(self.page.counter_is_visible())

    #проверка соответсвия типов
    def test_drugs_type_check(self):
        self.page.login()
        self.page.to_order()
        expected_type = self.page.selected_type(3)
        self.page.do_order()
        self.page.wait_for_another_page()
        self.assertEquals(expected_type, self.page.result_type())
        self.driver.back()
        self.page.decrement()
        self.page.to_order()
        expected_type = self.page.selected_type(2)
        self.page.do_order()
        self.page.wait_for_another_page()
        self.assertEquals(expected_type, self.page.result_type())

    def test_instructions(self):
        self.assertTrue(self.page.instructions.check_links())

    def test_analogs(self):
        drug = self.page.analogs.get_drags_name(2)
        self.page.analogs.go_to_drugs_page(drug)
        self.page.wait_for_another_page()
        self.assertEquals(drug.split(',')[0], self.page.analogs.result_drag())
        self.driver.back()
        drug = self.page.analogs.get_drags_name(3)
        self.page.analogs.go_to_drugs_page(drug)
        self.page.wait_for_another_page()
        self.assertEquals(drug.split(',')[0], self.page.analogs.result_drag())

    def test_social_networks(self):
        self.assertTrue(self.page.social_networks.check_links())

    def tearDown(self):
        self.page.close()
        self.driver.quit()
コード例 #16
0
ファイル: browser.py プロジェクト: shoptime/trex
class Browser(object):
    def __init__(self, harness, selenium_server_url, selenium_browser, width=1024, height=600):
        self.harness = harness
        self.selenium_server_url = selenium_server_url
        self.selenium_browser = selenium_browser
        self.width = width
        self.height = height

        self.selenium = Remote(
            self.selenium_server_url.encode('ascii'),
            desired_capabilities = {
                'browserName': self.selenium_browser,
            },
        )
        self.selenium.set_window_size(width, height)

    def __enter__(self):
        self.harness.browser_stack.append(self)
        return self

    def __exit__(self, type, value, traceback):
        if self.harness.browser_stack[-1] != self:
            raise Exception("Unexpected browser on the top of the stack")
        self.harness.browser_stack.pop()
        return

    def shutdown(self):
        self.selenium.quit()

    def back(self):
        self.selenium.back()

    def refresh(self):
        self.selenium.refresh()

    def title(self):
        return self.selenium.title

    def source(self):
        return self.selenium.page_source

    def get(self, uri):
        self.selenium.get(uri)

    def find(self, selector):
        return WebElementSet(self, elements=self.selenium).find(selector)

    def add_cookie(self, cookie_dict):
        self.selenium.add_cookie(cookie_dict)

    def get_cookie(self, name):
        return self.selenium.get_cookie(name)

    def endpoint(self):
        return self.find('html').attr('id').replace('endpoint-', '').replace('-', '.')

    def endpoint_is(self, endpoint):
        is_equal(self.endpoint(), endpoint, "Endpoint is correct")

    def wait_for_bootstrap_modal(self):
        last = [None]

        def inner_wait(driver):
            value = self.find('.modal')[-1].css('top')
            if last[0] and last[0] == value:
                return True
            last[0] = value
            return False
        WebDriverWait(self.selenium, 3).until(inner_wait)
        return self

    def url(self):
        return furl(self.selenium.current_url)

    def execute_script(self, script):
        return self.selenium.execute_script(script)

    def wait_for_ajax(self):
        WebDriverWait(self.selenium, 10).until_not(lambda x: x.execute_script('return jQuery.active'))
        return self

    def wait_for_jquery(self):
        WebDriverWait(self.selenium, 10).until(lambda x: x.execute_script('return window.jQuery ? true : false'))
        return self

    def screenshot(self, message="Screenshot: "):
        if 's3_access_key' not in app.settings.options('test'):
            print "No screenshot S3 instance configured - skipping screenshot"
            return

        if not hasattr(self, 's3_connection'):
            if 's3_host' in app.settings.options('test'):
                self.s3_connection = boto.s3.connection.S3Connection(
                    app.settings.get('test', 's3_access_key'),
                    app.settings.get('test', 's3_secret_key'),
                    host = app.settings.get('test', 's3_host'),
                )
            else:
                self.s3_connection = boto.s3.connection.S3Connection(
                    app.settings.get('test', 's3_access_key'),
                    app.settings.get('test', 's3_secret_key'),
                )

        bucket = self.s3_connection.get_bucket(app.settings.get('test', 's3_bucket'))
        filename = "%s-%s.png" % (token.create_url_token(), self.harness.current_test_object.__class__.__name__)

        key = bucket.new_key(filename)
        key.metadata['Content-Type'] = 'image/png'
        key.metadata['Cache-Control'] = 'public, max-age=86400'
        key.set_contents_from_string(self.selenium.get_screenshot_as_png())
        key.make_public()
        print "%s%s" % (message, key.generate_url(expires_in=0, query_auth=False))