예제 #1
0
    def test_http_download_with_external_idp_authentication(self):

        print("...test_http_download_with_external_idp_authentication...")
        idp_server = self._get_idp_server()
        user, password = self._get_test_user_credentials()
        print("xxx idp_server: {i}".format(i=idp_server))
        ret_code, file_to_restore = self._utils.update_esgf_policies_common('cmip5', idp_server)

        main_page = MainPage(self.driver, idp_server)
        main_page.load_page(idp_server, "thredds")
        time.sleep(10)
        thredds_page = ThreddsPage(self.driver, idp_server)
        download_dir = self._get_download_dir()

        #
        # assumption: this ext_idp_server has same test user and password
        #
        ext_idp_server = "esgf-node.llnl.gov"
        file_name = thredds_page._select_download_type('http')
        self._do_login(ext_idp_server, user, password)
        # sleep for a bit to allow time for download to complete
        time.sleep(30)        
        ret_code = self._utils.restore_esgf_policies_common(file_to_restore, idp_server)
        assert os.path.isfile(os.path.join(download_dir, file_name))
        time.sleep(self._delay)
예제 #2
0
def setup_function(function):
    driverFac = DriverFactory()
    global driver
    driver = driverFac.createAndOpenChrome()
    loginAsGuest(driver)
    mainPage = MainPage(driver)
    (mainPage.pythonBtn()).click()
예제 #3
0
    def __init__(self, parent=None):
        super(Login, self).__init__(parent)
        self.resize(210, 160)
        self.setWindowTitle('登录')

        # self.setFixedSize(self.width(), self.height())
        self.setWindowFlags(Qt.WindowCloseButtonHint)

        ###### 设置界面控件
        self.frame = QFrame(self)
        self.verticalLayout = QVBoxLayout(self.frame)

        self.lineEdit_account = QLineEdit()
        self.lineEdit_account.setPlaceholderText("请输入账号")
        self.verticalLayout.addWidget(self.lineEdit_account)

        self.lineEdit_password = QLineEdit()
        self.lineEdit_password.setPlaceholderText("请输入密码")
        self.verticalLayout.addWidget(self.lineEdit_password)

        self.pushButton_enter = QPushButton()
        self.pushButton_enter.setText("确定")
        self.verticalLayout.addWidget(self.pushButton_enter)

        self.pushButton_quit = QPushButton()
        self.pushButton_quit.setText("取消")
        self.verticalLayout.addWidget(self.pushButton_quit)

        self.pushButton_enter.clicked.connect(self.on_pushbutton_enter_clicked)
        self.pushButton_quit.clicked.connect(QCoreApplication.instance().quit)

        if Login.exec_(self) == QDialog.Accepted:
            mainpage = MainPage()
            mainpage.show()
            sys.exit(app.exec_())
예제 #4
0
    def test_http_download_user_as_rootAdmin(self):
        '''
        Test restricted access, have the following in esgf_policies_common.xml:
        <policy resource=".*test.*" attribute_type="wheel" attribute_value="super" action="Read"/>

        download data as test user and expect 'Group Registration Request' message
        '''
        print("...test_http_download_user_as_rootAdmin...")
        idp_server = self._get_idp_server()
        user, password = self._get_admin_credentials()
        ret_code, file_to_restore = self._utils.update_esgf_policies_common('restricted', idp_server)

        main_page = MainPage(self.driver, idp_server)
        main_page.load_page(idp_server, "thredds")
        thredds_page = ThreddsPage(self.driver, idp_server)
        download_dir = self._get_download_dir()

        file_name = thredds_page._select_download_type('http')
        print("xxx downloaded file: {f}".format(f=os.path.join(download_dir, file_name)))
        self._do_login(idp_server, user, password)
        # sleep for a bit to allow time for download to complete
        time.sleep(10)

        ret_code = self._utils.restore_esgf_policies_common(file_to_restore, idp_server)
        print("xxx downloaded file: {f}".format(f=os.path.join(download_dir, file_name)))
        assert os.path.isfile(os.path.join(download_dir, file_name))
        time.sleep(self._delay)
예제 #5
0
    def __init__(self, httpSession, agent, error, netconfReply, info):

        netconfSession = httpSession.getNetconf(agent)
        if netconfSession != None:
            httpSession.closeNetconfSession(netconfSession)

        MainPage.__init__(self, httpSession, agent, error, netconfReply, info)
예제 #6
0
    def test_http_download_user_has_no_access(self):
        '''
        Test restricted access, have the following in esgf_policies_common.xml:
        <policy resource=".*test.*" attribute_type="wheel" attribute_value="super" action="Read"/>

        download data as test user and expect 'Group Registration Request' message
        '''
        print("...test_http_download_user_has_no_access...")
        idp_server = self._get_idp_server()
        main_page = MainPage(self.driver, idp_server)
        user, password = self._get_test_user_credentials()
        ret_code, file_to_restore = self._utils.update_esgf_policies_common('restricted', idp_server)

        print("...loading thredds page...")
        main_page.load_page(idp_server, "thredds")
        thredds_page = ThreddsPage(self.driver, idp_server)
        download_dir = self._get_download_dir()

        printf("...select_download_type..http")
        file_name = thredds_page._select_download_type('http')
        self._do_login(idp_server, user, password)

        ret_code = self._utils.restore_esgf_policies_common(file_to_restore, idp_server)

        assert self.driver.find_element_by_xpath(self._group_registration_request_locator)
        time.sleep(self._delay)
예제 #7
0
    def setUp(self):
        self._download_dir = tempfile.mkdtemp()
        browser = os.getenv("BROWSER_TYPE", 'chrome')
        mode = os.getenv("BROWSER_MODE", '--headless')
        print("...browser: {b}".format(b=browser))
        print("...mode: {m}".format(m=mode))

        if mode == "--headless" and os.getenv("CIRCLECI"):
            print("...starting display since we are running in headless mode")
            display = Display(visible=0, size=(800, 600))
            display.start()

        if browser == 'chrome':
            self.setup_for_chrome(mode)
        elif browser == 'firefox':
            self.setup_for_firefox(mode)

        self.driver.implicitly_wait(self._wait_timeout)
        time.sleep(self._delay)

        utils = JupyterUtils()
        self.server = utils.get_server()
        self.main_page = MainPage(self.driver, self.server)
        self.left_side_bar = VcdatLeftSideBar(self.driver, None)
        self.file_browser = FileBrowser(self.driver, None)
        self.click_on_file_browser_home()

        self._test_notebook_file = "{t}.ipynb".format(t=self._testMethodName)
        self.notebook_page = NoteBookPage(self.driver, None)
        self.notebook_page.rename_notebook(self._test_notebook_file)
예제 #8
0
def test_ClickOnPythonMoveToNextPage():
    global driver
    mainPage = MainPage(driver)
    (mainPage.pythonBtn()).click()
    numberOfQuestions = ChooseNumberPage(driver)
    numberOfQuestionsHeader = (numberOfQuestions.Header()).text
    assert numberOfQuestionsHeader == "Python"
 def test_adicionar_orcamento_sem_valor(self):
     main_page = MainPage(self.driver)
     main_page.click_budgets()
     budget_page = BudetPage(self.driver)
     budget_page.click_add()
     add_page = AddBudgetPage(self.driver)
     add_page.enter_budget_type(self.BUDGET_TYPE)
     add_page.click_save_button()
     assert self.ERROR_BUDGET_VALUE in add_page.get_error()
예제 #10
0
    def test_case1(self):
        try:
            main_page = MainPage(self.driver)
            main_page.to_cart_prod3(2)
            product1_page = main_page.goto_product1_page()

            product1_page.add_to_cart(5)
            cart_page = product1_page.goto_cart_page()

            checkout_page = cart_page.goto_checkout()

            checkout_page.guest_step1_mark_guest()
            checkout_page.guest_step1_continue()

            checkout_page.guest_step2_fill_form({
                "Name": "name",
                "Last_name": "lastname",
                "E_Mail": "*****@*****.**",
                "Phone": "phonenum",
                "Company": "Compayny inc.",
                "Adress1": "AD1",
                "Adress2": "AD2",
                "City": "City",
                "Post_code": "Post code",
                "Country": "Peru",
                "State": "Lima"
            })
            checkout_page.guest_step2_is_shipping_billing_adr_change()
            checkout_page.guest_step2_continue()

            checkout_page.guest_step3_fill_form({
                "Name": "name2",
                "Last_name": "lastname2",
                "Company": "Compayny inc222.",
                "Adress1": "AD12",
                "Adress2": "AD22",
                "City": "City2",
                "Post_code": "Post code2",
                "Country": "Poland",
                "State": "Slaskie"
            })
            checkout_page.guest_step3_continue()

            checkout_page.guest_step4_add_comment("Comment sdfdsf")
            checkout_page.guest_step4_continue()

            checkout_page.guest_step5_add_comment("OTher comment")
            checkout_page.guest_step5_terms_and_cond_checkbox_click()
            checkout_page.guest_step5_continue()

            checkout_success_page = checkout_page.guest_step6_submit()

            main_page = checkout_success_page.goto_main_page()

        except:
            self.fail()
예제 #11
0
파일: TestScript.py 프로젝트: elochka/SBIS
 def waitAndClosePopup(self):
     mainPage = MainPage(self.driver)
     try:
         self.wait10sec.until(lambda _: len(mainPage.getClosePopupLinks()) > 0)
         for link in mainPage.getClosePopupLinks():
             logging.info("Popup was closed")
             link.click()
             time.sleep(1)
     except:
         logging.info("Popup was not found")
 def test_adicionar_orcamento_sem_nome(self):
     main_page = MainPage(self.driver)
     main_page.click_budgets()
     budget_page = BudetPage(self.driver)
     budget_page.click_add()
     add_page = AddBudgetPage(self.driver)
     add_page.click_budget_value(self.driver)
     add_page.enter_budget_value("500")
     add_page.click_save_button()
     assert "Budget value is empty" in add_page.get_error()
 def test_adicionar_orcamento_valido(self):
     main_page = MainPage(self.driver)
     main_page.click_budgets()
     budget_page = BudetPage(self.driver)
     budget_page.click_add()
     add_page = AddBudgetPage(self.driver)
     add_page.enter_budget_type(self.BUDGET_TYPE)
     add_page.enter_budget_value(self.BUDGET_VALUE)
     add_page.click_save_button()
     #budget_page = BudetPage(self.driver)
     assert self.BUDGET_TYPE in budget_page.get_first_budget()
예제 #14
0
    def test_load_variable1(self):
        print("xxx test_vcdat_jupyter_lab xxx")
        utils = JupyterUtils()
        server = utils.get_server()

        ##ws = "http://localhost:8888/?token=4a25c7eb4ac7042da403eecbac6691a51132543b95b4e613"
        #ws = "http://www.google.com"
        #ws = "http://localhost:8888"
        main_page = MainPage(self.driver, server)

        main_page.load_file("clt.nc")
예제 #15
0
    def __init__(self, *args, **kwargs):
        tkinter.Tk.__init__(self, *args, **kwargs)

        tkinter.Tk.wm_title(self, 'Scheduling')
        tkinter.Tk.geometry(self, '740x600')

        container = tkinter.Frame(self)
        container.pack(side="top", fill="both", expand=True)
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}

        self.frames[MainPage] = MainPage(container, self)
        self.frames[MainPage].grid(row=0, column=0, sticky='nsew')

        self.frames[Test] = Test(container, self)
        self.frames[Test].grid(row=0, column=0, sticky='nsew')

        self.frames[ResearchOneDueDate] = ResearchOneDueDate(container, self)
        self.frames[ResearchOneDueDate].grid(row=0, column=0, sticky='nsew')

        self.frames[ResearchTwoDueDates] = ResearchTwoDueDates(container, self)
        self.frames[ResearchTwoDueDates].grid(row=0, column=0, sticky='nsew')

        for _, frame in self.frames.items():
            frame.configure(bg='white')

        self.frames[MainPage].tkraise()
예제 #16
0
 def test02(self):
     MainPage(self.driver).go_to_login()
     time.sleep(3)
     LoginPage(self.driver).login1()
     time.sleep(5)
     self.assertEqual(
         login_success_page(self.driver).get_text('id', 'tvNick'),
         u'可爱de小胖妞')
예제 #17
0
 def test_phone_categories(self):
     driver = self.driver
     driver.get("http://demoblaze.com/index.html")
     main_page = MainPage(driver)
     main_page.click_on_phones_in_categories()
     main_page.click_on_Iphone()
     self.assertTrue(main_page.is_price_in_iphone_present())
예제 #18
0
 def login(self):
     name = self.username.get()
     pwd = self.password.get()
     flag, message = db.check_login(name, pwd)
     if flag:
         self.page.destroy()
         MainPage(self.root)
     else:
         messagebox.showwarning(title='警告', message=message)
예제 #19
0
class ActiveLoad(tk.Tk):

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        container = ttk.Frame(self)

        container.grid(row=0, column=0, sticky="NSEW")
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        #self.frames = {}
        self.frame = MainPage(container, self)
        #self.frames[MainPage] = frame

        self.frame.grid(row=0, column=0, sticky="nsew")
        self.frame.grid_rowconfigure(0, weight=0)
        self.frame.grid_columnconfigure(0, weight=0)

        self.frame.tkraise()

       #self.show_frame(MainPage)
        print(self.serial_ports())

    # def show_frame(self, container):
    #     frame = self.frames[container]
    #     frame.tkraise()
    

    def serial_ports(self):
        """ Lists serial port names
        :raises EnvironmentError:
        On unsupported or unknown platforms
        :returns:
        A list of the serial ports available on the system"""

        if sys.platform.startswith('win'):
            ports = ['COM%s' % (i + 1) for i in range(256)]
        elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
            # this excludes your current terminal "/dev/tty"
            ports = glob.glob('/dev/tty[A-Za-z]*')
        elif sys.platform.startswith('darwin'):
            ports = glob.glob('/dev/tty.*')
        else:
            raise EnvironmentError('Unsupported platform')

        result = []
        for port in ports:
            try:
                s = serial.Serial(port)
                s.close()
                result.append(port)
            except (OSError, serial.SerialException):
                pass
        return result
예제 #20
0
    def setUpClass(self):
        # Launch UI
        self.app = QApplication(sys.argv)
        self.form = MainPage.MainPage()

        # Global stub of previewTextEdit as it can't be mocked, since it
        # is created at runtime by setupUi
        preview_stub = MagicMock(name='previewTextEdit')
        preview_stub.toPlainText.return_value = 'AssetLibPath: test\nUnity Path: test\nName: test'
        self.form.createAssetPage.previewTextEdit = preview_stub
예제 #21
0
    def test1(self):
        """
        test sequence 1
        """

        # 1. Driver Initialization
        initialization_object = DriverInitialization
        driver = initialization_object.initialize_driver(
            "https://www.python.org/")

        # 2. Going to Downloads -> All Releases

        driver = MainPage(driver)
        driver.go_to_all_releases()

        # 3. Printing the last version of python
        driver = ReleasesPage(driver)
        driver.display_last_release
        return driver.driver
예제 #22
0
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        container = ttk.Frame(self)

        container.grid(row=0, column=0, sticky="NSEW")
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        #self.frames = {}
        self.frame = MainPage(container, self)
        #self.frames[MainPage] = frame

        self.frame.grid(row=0, column=0, sticky="nsew")
        self.frame.grid_rowconfigure(0, weight=0)
        self.frame.grid_columnconfigure(0, weight=0)

        self.frame.tkraise()

       #self.show_frame(MainPage)
        print(self.serial_ports())
예제 #23
0
    def test2(self):
        """
        test sequence 1
         """
        # 1. driver initialization and opening Chrome Browser
        initialization_object = DriverInitialization
        driver = initialization_object.initialize_driver(
            "https://www.python.org/")

        # 2. Search bar
        main_page_driver = MainPage(driver)
        main_page_driver.use_search_bar()

        # 3. Open first result link
        search_page_driver = SearchPage(main_page_driver.driver)
        search_page_driver.click_on_first_result()

        # 4. Select Examples
        decorator_page_driver = DecoratorsPage(search_page_driver.driver)
        decorator_page_driver.select_examples()
        # 5. Verify current example count is 5
        decorator_page_driver.verify_examples_count()

        return decorator_page_driver
예제 #24
0
    def setUp(self):
        print("\n\n#########...{}...".format(self._testMethodName))
        self._download_dir = tempfile.mkdtemp()
        browser = os.getenv("BROWSER_TYPE", 'chrome')
        mode = os.getenv("BROWSER_MODE", '--headless')
        print("...browser: {b}".format(b=browser))
        print("...mode: {m}".format(m=mode))

        if mode == "--headless" and os.getenv("CIRCLECI"):
            print("...starting display since we are running in headless mode")
            display = Display(visible=0, size=(800, 600))
            display.start()

        if browser == 'chrome':
            self.setup_for_chrome(mode)
        elif browser == 'firefox':
            self.setup_for_firefox(mode)

        self.driver.implicitly_wait(self._wait_timeout)
        time.sleep(self._delay)

        utils = JupyterUtils()
        self.server = utils.get_server()
        self.main_page = MainPage(self.driver, self.server)
예제 #25
0
    def test_user_login(self):

        # get info from test config
        user, password = self._get_test_user_credentials()
        idp_server = self._get_idp_server()

        main_page = MainPage(self.driver, idp_server)

        main_page.do_login(user, password)
        # may need to REVISIT -- validate
        main_page.do_logout()
        print("xxx after do_logout()")
        time.sleep(4)
예제 #26
0
 def test_test_go_to_product_descripcion(self):
     driver = self.driver
     driver.get("https://www.demoblaze.com/")
     main_page = MainPage(driver)
     main_page.click_on_phones_in_categories()
     time.sleep(3)
     main_page.click_on_Iphone()
     product_description = ProductDescription(driver)
     product_description.add_Iphone_to_cart()
     time.sleep(3)
     product_description.handle_alert()
     product_description.go_to_cart()
     self.assertTrue(product_description.is_place_order_button_present())
예제 #27
0
 def chklogin(self):
     if self.user.get() and self.passwd.get():
         try:
             sql = "select * from userinfo where name='%s'" % self.user.get(
             )
             print(sql)
             self.mysql.runsql(sql)
             res = self.mysql.fechone()
             print("res:", res)
             if res:
                 if res[2] == self.passwd.get():
                     self.page.destroy()
                     MainPage(self.root, self.mysock)
                 else:
                     showinfo(title='错误', message='账号或密码错误!')
             else:
                 showinfo(title='错误', message='账号不存在')
         except:
             print('login fail!!!')
예제 #28
0
 def login(self):
     '''登录
     '''
     name = self.entry_name.get()
     pwd = self.entry_pwd.get()
     if name == NAME and pwd == PWD:
         tkinter.messagebox.showinfo(title="恭喜", message="登录成功!")
         self.page.destroy()  # 销毁当前页面
         MainPage(self.root)  # 进入主界面
         if self.remember.get() == 1:
             # 把登录成功的信息写入临时文件
             with open(filename, 'w') as fp:
                 fp.write(','.join((name, pwd)))
         else:
             try:
                 # 删除用于记录用户名和密码的临时文件
                 os.remove(filename)
             except BaseException:
                 pass
     else:
         tkinter.messagebox.showerror("警告!", message="用户名或密码错误")
예제 #29
0
    def build(self):

        Config.set('graphics', 'width', '1500')
        Config.set('graphics', 'height', '1000')
        return MainPage()
예제 #30
0
def test_CheckBtnColor():
    global driver
    mainPage = MainPage(driver)
    btn = mainPage.pythonBtn()
    color = btn.value_of_css_property("background-color")
    assert color == "rgba(125, 180, 216, 1)"
예제 #31
0
class BaseTestCase(unittest.TestCase):
    '''
    Following env variable should be set:
    BROWSER_MODE: '--foreground' or '--headless'
    BROWSER_TYPE: 'chrome' or 'firefox'
    BROWSER_DRIVER: full path to your browser driver (chromedriver or geckodriver)
    If running with firefox on Linux, should also set:
       BROWSER_BINARY: full path to your firefox binary
    '''
    _delay = 1
    _wait_timeout = 15

    def setUp(self):
        print("\n\n#########...{}...".format(self._testMethodName))
        self._download_dir = tempfile.mkdtemp()
        browser = os.getenv("BROWSER_TYPE", 'chrome')
        mode = os.getenv("BROWSER_MODE", '--headless')
        print("...browser: {b}".format(b=browser))
        print("...mode: {m}".format(m=mode))

        if mode == "--headless" and os.getenv("CIRCLECI"):
            print("...starting display since we are running in headless mode")
            display = Display(visible=0, size=(800, 600))
            display.start()

        if browser == 'chrome':
            self.setup_for_chrome(mode)
        elif browser == 'firefox':
            self.setup_for_firefox(mode)

        self.driver.implicitly_wait(self._wait_timeout)
        time.sleep(self._delay)

        utils = JupyterUtils()
        self.server = utils.get_server()
        self.main_page = MainPage(self.driver, self.server)

    def tearDown(self):
        print("...BaseTestCase.tearDown()...")
        self.main_page.shutdown_kernel()
        self.driver.quit()

    def setup_for_chrome(self, mode):
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument(mode)
        chrome_options.add_argument("--no-sandbox")
        chrome_options.add_argument("window-size=1200x600")
        self.driver = webdriver.Chrome(
            executable_path=os.getenv("BROWSER_DRIVER",
                                      "/usr/local/bin/chromedriver"),
            chrome_options=chrome_options,
            service_args=['--verbose', '--log-path=/tmp/chromedriver.log'])
        self.driver.implicitly_wait(10)

    def setup_for_firefox(self, mode):
        firefox_profile = FirefoxProfile()
        firefox_profile.set_preference('dom.disable_open_during_load', False)
        firefox_capabilities = DesiredCapabilities().FIREFOX
        firefox_capabilities['marionette'] = True
        firefox_capabilities['moz:firefoxOptions'] = {'args': ['--headless']}

        firefox_binary = FirefoxBinary(
            os.getenv("BROWSER_BINARY", "/usr/bin/firefox"))
        geckodriver_loc = os.getenv("BROWSER_DRIVER",
                                    "/usr/local/bin/geckodriver")
        self.driver = webdriver.Firefox(firefox_profile=firefox_profile,
                                        firefox_binary=firefox_binary,
                                        executable_path=geckodriver_loc,
                                        capabilities=firefox_capabilities)
        self.driver.implicitly_wait(10)

    #
    # Test Util functions
    #
    def new_notebook(self, launcher, notebook_name):
        notebook = NoteBookPage(self.driver, None)
        notebook.new_notebook(launcher, notebook_name)
        return notebook

    def save_close_notebook(self, notebook):
        '''
        save and close current notebook
        '''
        notebook.save_current_notebook()
        notebook.close_current_notebook()
예제 #32
0
파일: TestScript.py 프로젝트: elochka/SBIS
    def test_main(self):
        self.driver.get("http://fix-inside.tensor.ru")
        self.log.info("Loading login page.")
        time.sleep(5)
        self.assertEqual("Вход в систему/СБИС", self.driver.title)

        logPage = LoginPage(self.driver)
        logPage.getLoginField().send_keys("check_rigth_user")
        logPage.getPasswordInput().send_keys("qwerty123")
        logPage.getloginButton().click()
        self.log.info("Login process was started")
        time.sleep(5)
        self.assertEqual("СБИС", self.driver.title)
        self.log.info("Login was successful")

        self.waitAndClosePopup()

        mainPage = MainPage(self.driver)
        self.forceClick(mainPage.getstaffLink())
        time.sleep(5)
        self.forceClick(mainPage.getstaffLink())
        time.sleep(20) # на моём ноутбуке страница грузится очень долго
        self.assertEqual("Сотрудники/СБИС", self.driver.title)
        self.log.info("Staff page was opened")

        staffPage = StaffPage(self.driver)
        link = staffPage.getorgLink()
        firstName = link.text
        staffPage.getorgLink().click()
        time.sleep(5)
        self.assertEqual(staffPage.isOrgFormVisible(), True)
        self.log.info("Organizations list was opened")

        staffPage.getchangeOrg().click()
        time.sleep(5)
        secondName = staffPage.getorgLink().text
        self.assertNotEqual(firstName, secondName)
        self.log.info("Link name was changed")

        staffPage.getsearchField().send_keys("Белова Олеся Александровна")
        time.sleep(5)
        self.assertIn("Белова Олеся", staffPage.getemployeeResult().text)
        self.log.info("Employee was found")

        staffPage.getemployeeResult().click()
        time.sleep(10)
        self.assertEqual(staffPage.isEmployeeCardVisible(), True)
        self.log.info("Employee card was opened")

        staffPage.getcloseCardButton().click()
        time.sleep(5)
        self.assertEqual(staffPage.isEmployeeCardVisible(), False)
        self.log.info("Employee card was closed")

        staffPage.getuserNameLink().click()
        time.sleep(5)
        self.assertEqual(staffPage.isUserMenuVisible(), True)
        self.log.info("User menu was opened")

        staffPage.getlogOutLink().click()
        time.sleep(5)
        self.assertEqual("Вход в систему/СБИС", self.driver.title)
        self.log.info("Logout was successful")

        time.sleep(10)