def setUp(self):
     self.vars = {'city_select_name': 'fromPort', 'input_name_id': 'inputName'}
     self.driver = None
     options = webdriver.ChromeOptions()
     options.add_argument('--no-sandbox')
     options.add_argument('--disable-dev-shm-usage')
     self.driver = webdriver.Chrome(service_log_path='/somewhere/webdriver.log', chrome_options=options)
     self.driver.implicitly_wait(3.5)
     self.loc_mng = LocatorsManager(self.driver, 3.5)
     self.dlg_mng = DialogsManager(self.driver, False)
     apiritif.put_into_thread_store(func_mode=False, driver=self.driver, scenario_name='loc_sc')
Beispiel #2
0
 def setUp(self):
     self.driver = None
     options = webdriver.ChromeOptions()
     self.driver = webdriver.Chrome(
         service_log_path='<somewhere>webdriver.log',
         chrome_options=options)
     self.driver.implicitly_wait(3.5)
     self.loc_mng = LocatorsManager(self.driver)
     self.vars = {}
     add_flow_markers()
     apiritif.put_into_thread_store(func_mode=False, driver=self.driver)
Beispiel #3
0
 def setUp(self):
     self.driver = None
     self.driver = webdriver.Remote(
         command_executor='http://localhost:4723/wd/hub',
         desired_capabilities={
             'browserName': 'chrome',
             'deviceName': '',
             'platformName': 'android',
         })
     self.driver.implicitly_wait(3.5)
     self.loc_mng = LocatorsManager(self.driver, 3.5)
     self.vars = {}
     apiritif.put_into_thread_store(func_mode=False, driver=self.driver)
    def setUp(self):
        self.driver = None
        options = webdriver.ChromeOptions()
        options.add_argument('--no-sandbox')
        options.add_argument('--disable-dev-shm-usage')
        self.driver = webdriver.Chrome(service_log_path='/somewhere/webdriver.log', chrome_options=options)
        self.driver.implicitly_wait(3.5)
        self.loc_mng = LocatorsManager(self.driver, 3.5)
        self.vars = {

        }
        add_flow_markers()
        apiritif.put_into_thread_store(func_mode=False, driver=self.driver)
    def test_get_locator_timeout(self):
        content = [{'css': 'existed_css'}]
        timeout = 30
        driver = MockWebDriver(content=content, timeout=timeout)
        locators_manager = LocatorsManager(driver=driver, timeout=timeout)

        missing_locators = [{'css': 'missing_css'}, {'xpath': 'missing_xpath'}]
        self.assertRaises(NoSuchElementException, locators_manager.get_locator,
                          missing_locators)
        self.assertEqual(30, driver.waiting_time)

        driver.waiting_time = 0
        existed_locators = [{'css': 'existed_css'}]
        locators_manager.get_locator(existed_locators)
        self.assertEqual(30, driver.waiting_time)
 def setUp(self):
     self.driver = None
     options = webdriver.FirefoxOptions()
     profile = webdriver.FirefoxProfile()
     profile.set_preference('webdriver.log.file', '<somewhere>webdriver.log')
     self.driver = webdriver.Firefox(profile, firefox_options=options)
     self.driver.implicitly_wait(3.5)
     self.wnd_mng = WindowManager(self.driver)
     self.frm_mng = FrameManager(self.driver)
     self.loc_mng = LocatorsManager(self.driver)
     self.vars = {
         'name': 'Name',
         'red_pill': 'take_it',
     }
     apiritif.put_into_thread_store(func_mode=False, driver=self.driver)
Beispiel #7
0
 def setUp(self):
     self.vars = {
         'my_xpath_locator': '/html/body/div[3]',
         'name': 'Name',
         'red_pill': 'take_it,',
     }
     self.driver = None
     options = webdriver.FirefoxOptions()
     profile = webdriver.FirefoxProfile()
     profile.set_preference('webdriver.log.file', '/somewhere/webdriver.log')
     self.driver = webdriver.Firefox(profile, firefox_options=options)
     self.driver.implicitly_wait(3.5)
     self.wnd_mng = WindowManager(self.driver)
     self.frm_mng = FrameManager(self.driver)
     self.loc_mng = LocatorsManager(self.driver, 3.5)
     apiritif.put_into_thread_store(func_mode=False, driver=self.driver, scenario_name='loc_sc')
 def setUp(self):
     self.vars = {
         'name': 'Name',
         'red_pill': 'take_it',
     }
     reader_1.read_vars()
     reader_2.read_vars()
     self.vars.update(reader_1.get_vars())
     self.vars.update(reader_2.get_vars())
     self.driver = None
     options = webdriver.FirefoxOptions()
     profile = webdriver.FirefoxProfile()
     profile.set_preference('webdriver.log.file', '/somewhere/webdriver.log')
     self.driver = webdriver.Firefox(profile, firefox_options=options)
     self.driver.implicitly_wait(3.5)
     self.wnd_mng = WindowManager(self.driver)
     self.frm_mng = FrameManager(self.driver)
     self.loc_mng = LocatorsManager(self.driver, 3.5)
     apiritif.put_into_thread_store(func_mode=True, driver=self.driver,scenario_name='loc_sc', data_sources=True)
Beispiel #9
0
class TestLocScRemote(unittest.TestCase):
    def setUp(self):
        self.driver = None
        self.driver = webdriver.Remote(
            command_executor=
            'http://*****:*****@remote_web_driver_host:port/wd/hub',
            desired_capabilities={
                'app': '',
                'browserName': 'firefox',
                'deviceName': '',
                'javascriptEnabled': 'True',
                'platformName': 'linux',
                'platformVersion': '',
                'seleniumVersion': '',
                'version': '54.0',
            })
        self.driver.implicitly_wait(3.5)
        self.loc_mng = LocatorsManager(self.driver, 3.5)
        self.vars = {}
        add_flow_markers()
        apiritif.put_into_thread_store(func_mode=False,
                                       driver=self.driver,
                                       scenario_name='loc_sc_remote')

    def _1_(self):
        with apiritif.smart_transaction('/'):
            self.driver.get('http://blazedemo.com/')

            var_loc_wait = self.loc_mng.get_locator([{
                'xpath':
                "//input[@type='submit']",
            }])
            WebDriverWait(self.driver, 3.5).until(
                econd.presence_of_element_located(
                    (var_loc_wait[0], var_loc_wait[1])),
                'Element \'xpath\':"//input[@type=\'submit\']" failed to appear within 3.5s'
            )
            self.assertEqual(self.driver.title, 'BlazeDemo')
            body = self.driver.page_source
            re_pattern = re.compile('contained_text')
            self.assertEqual(0, len(re.findall(re_pattern, body)),
                             "Assertion: 'contained_text' found in BODY")

    def _2_empty(self):
        with apiritif.smart_transaction('empty'):
            pass

    def test_locscremote(self):
        self._1_()
        self._2_empty()

    def tearDown(self):
        if self.driver:
            self.driver.quit()
Beispiel #10
0
 def setUp(self):
     self.driver = None
     self.driver = webdriver.Remote(
         command_executor=
         'http://*****:*****@remote_web_driver_host:port/wd/hub',
         desired_capabilities={
             'app': '',
             'browserName': 'firefox',
             'deviceName': '',
             'javascriptEnabled': 'True',
             'platformName': 'linux',
             'platformVersion': '',
             'seleniumVersion': '',
             'version': '54.0',
         })
     self.driver.implicitly_wait(3.5)
     self.loc_mng = LocatorsManager(self.driver)
     self.vars = {}
     add_flow_markers()
     apiritif.put_into_thread_store(func_mode=False, driver=self.driver)
class TestLocSc(unittest.TestCase):
    def setUp(self):
        self.vars = {}
        self.driver = None
        options = webdriver.ChromeOptions()
        options.add_argument('--no-sandbox')
        options.add_argument('--disable-dev-shm-usage')
        self.driver = webdriver.Chrome(
            service_log_path='/somewhere/webdriver.log',
            chrome_options=options)
        self.driver.implicitly_wait(3.5)
        self.loc_mng = LocatorsManager(self.driver, 3.5)
        self.dlg_mng = DialogsManager(self.driver, False)
        add_flow_markers()
        apiritif.put_into_thread_store(func_mode=False,
                                       driver=self.driver,
                                       scenario_name='loc_sc')

    def _1_(self):
        with apiritif.smart_transaction('/'):
            self.driver.get('http://blazedemo.com/')

            var_loc_wait = self.loc_mng.get_locator([{
                'xpath':
                "//input[@type='submit']",
            }])
            WebDriverWait(self.driver, 3.5).until(
                econd.presence_of_element_located(
                    (var_loc_wait[0], var_loc_wait[1])),
                'Element \'xpath\':"//input[@type=\'submit\']" failed to appear within 3.5s'
            )
            self.assertEqual(self.driver.title, 'BlazeDemo')
            body = self.driver.page_source
            re_pattern = re.compile('contained_text')
            self.assertEqual(0, len(re.findall(re_pattern, body)),
                             "Assertion: 'contained_text' found in BODY")

    def _2_empty(self):
        with apiritif.smart_transaction('empty'):
            pass

    def test_locsc(self):
        self._1_()
        self._2_empty()

    def tearDown(self):
        if self.driver:
            self.driver.quit()
Beispiel #12
0
class TestLocScAppium(unittest.TestCase):
    def setUp(self):
        self.vars = {}
        self.driver = None
        self.driver = webdriver.Remote(
            command_executor='http://*****:*****@type='submit']",
            }])
            WebDriverWait(self.driver, 3.5).until(
                econd.presence_of_element_located(
                    (var_loc_wait[0], var_loc_wait[1])),
                'Element \'xpath\':"//input[@type=\'submit\']" failed to appear within 3.5s'
            )
            self.assertEqual(self.driver.title, 'BlazeDemo')
            body = self.driver.page_source
            re_pattern = re.compile('contained_text')
            self.assertEqual(0, len(re.findall(re_pattern, body)),
                             "Assertion: 'contained_text' found in BODY")

    def _2_empty(self):
        with apiritif.smart_transaction('empty'):
            pass

    def test_locscappium(self):
        self._1_()
        self._2_empty()

    def tearDown(self):
        if self.driver:
            self.driver.quit()
class TestLocSc(unittest.TestCase):
    def setUp(self):
        self.driver = None
        options = webdriver.FirefoxOptions()
        profile = webdriver.FirefoxProfile()
        profile.set_preference('webdriver.log.file',
                               '/somewhere/webdriver.log')
        self.driver = webdriver.Firefox(profile, firefox_options=options)
        self.driver.implicitly_wait(3.5)
        self.wnd_mng = WindowManager(self.driver)
        self.frm_mng = FrameManager(self.driver)
        self.loc_mng = LocatorsManager(self.driver, 3.5)
        self.vars = {
            'name': 'Name',
            'red_pill': 'take_it,',
        }
        apiritif.put_into_thread_store(func_mode=False, driver=self.driver)

    def _1_Test_V2(self):
        with apiritif.smart_transaction('Test V2'):
            self.driver.get('http://blazedemo.com')
            self.driver.set_window_size('750', '750')
            self.wnd_mng.switch(0)

            var_loc_chain = self.loc_mng.get_locator([{
                'id': 'invalid_id',
            }, {
                'xpath':
                '/html/body/div[3]/form/select[1]',
            }])
            ActionChains(self.driver).click_and_hold(
                self.driver.find_element(var_loc_chain[0],
                                         var_loc_chain[1])).perform()

            var_loc_chain = self.loc_mng.get_locator([{
                'id': 'id_123',
            }])
            ActionChains(self.driver).move_to_element_with_offset(
                self.driver.find_element(var_loc_chain[0], var_loc_chain[1]),
                -10, -10).perform()

            var_loc_chain = self.loc_mng.get_locator([{
                'name': 'name_123',
            }])
            ActionChains(self.driver).move_to_element(
                self.driver.find_element(var_loc_chain[0],
                                         var_loc_chain[1])).perform()

            source = self.loc_mng.get_locator([{
                'name': 'invalid_name',
            }, {
                'xpath':
                '/html/body/div[2]/div/p[2]/a',
            }])

            target = self.loc_mng.get_locator([{
                'css': 'invalid_css',
            }, {
                'xpath':
                '/html/body/div[3]/form/div',
            }])
            ActionChains(self.driver).drag_and_drop(
                self.driver.find_element(source[0], source[1]),
                self.driver.find_element(target[0], target[1])).perform()

            var_loc_as = self.loc_mng.get_locator([{
                'css': 'myclass',
            }, {
                'xpath':
                '/html/body/div[3]/h2',
            }])
            self.assertEqual(
                self.driver.find_element(
                    var_loc_as[0],
                    var_loc_as[1]).get_attribute('innerText').strip(),
                'Choose your departure city:'.strip())

            var_loc_as = self.loc_mng.get_locator([{
                'css': 'myclass',
            }, {
                'xpath':
                '/html/body/div[3]/form/div/input',
            }])
            self.assertEqual(
                self.driver.find_element(
                    var_loc_as[0],
                    var_loc_as[1]).get_attribute('value').strip(),
                'Find Flights'.strip())
            self.assertEqual(self.driver.title, 'BlazeDemo')

            self.vars['hEaDeR'] = self.driver.title

            self.vars['final_var'] = 'test_text'

            var_loc_as = self.loc_mng.get_locator([{
                'xpath':
                '/html/body/div[3]/h2',
            }])

            self.vars['Basic'] = self.driver.find_element(
                var_loc_as[0], var_loc_as[1]).get_attribute('innerText')

            var_loc_keys = self.loc_mng.get_locator([{
                'xpath': '/wrong/one',
            }, {
                'xpath':
                '/html/body/div[3]/form/div/input',
            }])
            self.driver.find_element(var_loc_keys[0], var_loc_keys[1]).click()

            var_loc_keys = self.loc_mng.get_locator([{
                'xpath': '/doc/abc',
            }, {
                'css':
                'body > div.container > table > tbody > tr:nth-child(1) > td:nth-child(2) > input',
            }])
            self.driver.find_element(var_loc_keys[0],
                                     var_loc_keys[1]).send_keys(Keys.ENTER)

            var_loc_keys = self.loc_mng.get_locator([{
                'id': 'fjkafjk',
            }, {
                'css': 'testCss',
            }])
            self.driver.find_element(var_loc_keys[0], var_loc_keys[1]).clear()
            self.driver.find_element(var_loc_keys[0],
                                     var_loc_keys[1]).send_keys('myusername')

            var_loc_select = self.loc_mng.get_locator([{
                'css': 'myclass',
            }, {
                'xpath':
                '//*[@id="cardType"]',
            }])
            Select(
                self.driver.find_element(
                    var_loc_select[0],
                    var_loc_select[1])).select_by_visible_text(
                        'American Express')
            self.driver.execute_script(
                'window.scrollTo(0, document.body.scrollHeight);')

            for i in range(10):
                if ((i % 2) == 0):
                    print(i)
            print(self.vars['red_pill'])
            sleep(4.6)
            self.driver.delete_all_cookies()
            self.driver.save_screenshot('screen.png')

            filename = os.path.join(os.getenv('TAURUS_ARTIFACTS_DIR'),
                                    ('screenshot-%d.png' % (time() * 1000)))
            self.driver.save_screenshot(filename)

            var_loc_wait = self.loc_mng.get_locator([{
                'css': 'invalid_css',
            }, {
                'name': 'inputName',
            }])
            WebDriverWait(self.driver, 3.5).until(
                econd.visibility_of_element_located(
                    (var_loc_wait[0], var_loc_wait[1])),
                "Element 'css':'invalid_css' failed to appear within 3.5s")

            var_edit_content = self.loc_mng.get_locator([{
                'id': 'editor',
            }])

            if self.driver.find_element(
                    var_edit_content[0],
                    var_edit_content[1]).get_attribute('contenteditable'):
                self.driver.execute_script(
                    ("arguments[0].innerHTML = '%s';" % 'lo-la-lu'),
                    self.driver.find_element(var_edit_content[0],
                                             var_edit_content[1]))
            else:
                raise NoSuchElementException(
                    ('The element (%s: %r) is not a contenteditable element' %
                     (var_edit_content[0], var_edit_content[1])))
            sleep(4.6)
            self.driver.delete_all_cookies()
            self.driver.save_screenshot('screen.png')

            filename = os.path.join(os.getenv('TAURUS_ARTIFACTS_DIR'),
                                    ('screenshot-%d.png' % (time() * 1000)))
            self.driver.save_screenshot(filename)
            self.driver.execute_script("window.open('vacation.html');")
            self.driver.maximize_window()
            self.frm_mng.switch('index=1')
            self.frm_mng.switch('relative=parent')
            self.frm_mng.switch(self.driver.find_element(By.NAME, 'my_frame'))
            self.wnd_mng.close()

    def test_locsc(self):
        self._1_Test_V2()

    def tearDown(self):
        if self.driver:
            self.driver.quit()
class TestLocSc(unittest.TestCase):

    def setUp(self):
        self.vars = {
            'name': 'Name',
            'red_pill': 'take_it',
        }
        reader_1.read_vars()
        reader_2.read_vars()
        self.vars.update(reader_1.get_vars())
        self.vars.update(reader_2.get_vars())
        self.driver = None
        options = webdriver.FirefoxOptions()
        profile = webdriver.FirefoxProfile()
        profile.set_preference('webdriver.log.file', '/somewhere/webdriver.log')
        self.driver = webdriver.Firefox(profile, firefox_options=options)
        self.driver.implicitly_wait(3.5)
        self.wnd_mng = WindowManager(self.driver)
        self.frm_mng = FrameManager(self.driver)
        self.loc_mng = LocatorsManager(self.driver, 3.5)
        apiritif.put_into_thread_store(func_mode=True, driver=self.driver,scenario_name='loc_sc', data_sources=True)

    def _1_(self):
        with apiritif.smart_transaction('/'):
            self.driver.get('http://blazedemo.com/')

            var_loc_wait = self.loc_mng.get_locator([{
                'xpath': "//input[@type='submit']",
            }])
            WebDriverWait(self.driver, 3.5).until(econd.presence_of_element_located((
                var_loc_wait[0],
                var_loc_wait[1])), 'Element \'xpath\':"//input[@type=\'submit\']" failed to appear within 3.5s')
            self.assertEqual(self.driver.title, 'BlazeDemo')

            var_loc_chain = self.loc_mng.get_locator([{
                'xpath': '/html/body/div[2]/div/p[2]/a',
            }])
            ActionChains(self.driver).move_to_element(self.driver.find_element(
                var_loc_chain[0],
                var_loc_chain[1])).perform()

            var_loc_chain = self.loc_mng.get_locator([{
                'xpath': '/html/body/div[3]/h2',
            }])
            ActionChains(self.driver).double_click(self.driver.find_element(
                var_loc_chain[0],
                var_loc_chain[1])).perform()

            var_loc_chain = self.loc_mng.get_locator([{
                'xpath': '/html/body/div[3]/form/select[1]',
            }])
            ActionChains(self.driver).click_and_hold(self.driver.find_element(
                var_loc_chain[0],
                var_loc_chain[1])).perform()

            var_loc_chain = self.loc_mng.get_locator([{
                'xpath': '/html/body/div[3]/form/select[1]/option[6]',
            }])
            ActionChains(self.driver).release(self.driver.find_element(
                var_loc_chain[0],
                var_loc_chain[1])).perform()

            var_loc_select = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            Select(self.driver.find_element(
                var_loc_select[0],
                var_loc_select[1])).select_by_visible_text('London')

            var_loc_keys = self.loc_mng.get_locator([{
                'css': 'body input.btn.btn-primary',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).send_keys(Keys.ENTER)

            var_loc_as = self.loc_mng.get_locator([{
                'id': 'address',
            }])
            self.assertEqual(self.driver.find_element(
                var_loc_as[0],
                var_loc_as[1]).get_attribute('value').strip(), '123 Beautiful st.'.strip())

            var_loc_as = self.loc_mng.get_locator([{
                'xpath': '/html/body/div[2]/form/div[1]/label',
            }])
            self.assertEqual(self.driver.find_element(
                var_loc_as[0],
                var_loc_as[1]).get_attribute('innerText').strip(), self.vars['name'].strip())

            var_loc_wait = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            WebDriverWait(self.driver, 3.5).until(econd.visibility_of_element_located((
                var_loc_wait[0],
                var_loc_wait[1])), "Element 'name':'toPort' failed to appear within 3.5s")

            var_loc_keys = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).send_keys('B')

            var_loc_keys = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).clear()
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).send_keys('B')

            var_loc_keys = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).send_keys(Keys.ENTER)

            var_loc_keys = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).clear()
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).send_keys(Keys.ENTER)

            var_loc_keys = self.loc_mng.get_locator([{
                'xpath': '//div[3]/form/select[1]//option[3]',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).click()

            var_loc_keys = self.loc_mng.get_locator([{
                'xpath': '//div[3]/form/select[2]//option[6]',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).click()
            self.wnd_mng.switch('0')
            self.driver.execute_script("window.open('some.url');")
            self.wnd_mng.switch('win_ser_local')
            self.wnd_mng.switch('win_ser_1')
            self.wnd_mng.switch('that_window')
            self.wnd_mng.close('1')
            self.wnd_mng.close('win_ser_local')
            self.wnd_mng.close('win_ser_1')
            self.wnd_mng.close('that_window')

            var_loc_keys = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).submit()
            self.driver.execute_script("alert('This is Sparta');")

            for i in range(10):
                if ((i % 2) == 0):
                    print(i)

            source = self.loc_mng.get_locator([{
                'id': 'address',
            }])

            target = self.loc_mng.get_locator([{
                'name': 'toPort',
            }])
            ActionChains(self.driver).drag_and_drop(self.driver.find_element(
                source[0],
                source[1]), self.driver.find_element(
                target[0],
                target[1])).perform()
            self.frm_mng.switch(self.driver.find_element(By.NAME, 'my_frame'))
            self.frm_mng.switch('index=1')
            self.frm_mng.switch('relative=parent')

            var_edit_content = self.loc_mng.get_locator([{
                'id': 'editor',
            }])

            if self.driver.find_element(
                    var_edit_content[0],
                    var_edit_content[1]).get_attribute('contenteditable'):
                self.driver.execute_script(("arguments[0].innerHTML = '%s';" % 'lo-la-lu'), self.driver.find_element(
                    var_edit_content[0],
                    var_edit_content[1]))
            else:
                raise NoSuchElementException(('The element (%s: %r) is not a contenteditable element' % (
                    var_edit_content[0],
                    var_edit_content[1])))
            sleep(3.5)
            self.driver.delete_all_cookies()

            var_loc_keys = self.loc_mng.get_locator([{
                'linktext': 'destination of the week! The Beach!',
            }])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).click()

            self.vars['Title'] = self.driver.title

            var_loc_as = self.loc_mng.get_locator([{
                'xpath': "//*[@id='basics']/h2",
            }])

            self.vars['Basic'] = self.driver.find_element(
                var_loc_as[0],
                var_loc_as[1]).get_attribute('innerText')

            var_loc_as = self.loc_mng.get_locator([{
                'xpath': "//*[@id='basics']/h1",
            }])

            self.vars['World'] = self.driver.find_element(
                var_loc_as[0],
                var_loc_as[1]).get_attribute('value')

            self.vars['Final'] = '{} {} by {}'.format(self.vars['Title'], self.vars['Basic'], self.vars['By'])

            self.vars['var_eval'] = self.driver.execute_script('return 0 == false;')
            self.assertTrue(self.driver.execute_script('return 10 === 2*5;'), '10 === 2*5')
            self.driver.get('http:\\blazemeter.com')
            print(self.vars['red_pill'])
            self.driver.save_screenshot('screen.png')

            filename = os.path.join(os.getenv('TAURUS_ARTIFACTS_DIR'), ('screenshot-%d.png' % (time() * 1000)))
            self.driver.save_screenshot(filename)
            body = self.driver.page_source
            re_pattern = re.compile('contained_text')
            self.assertEqual(0, len(re.findall(re_pattern, body)), "Assertion: 'contained_text' found in BODY")

    def _2_empty(self):
        with apiritif.smart_transaction('empty'):
            pass

    def test_locsc(self):
        self._1_()
        self._2_empty()

    def tearDown(self):
        if self.driver:
            self.driver.quit()
class TestLocSc(unittest.TestCase):
    def setUp(self):
        self.vars = {
            'city_select_name': 'fromPort',
            'input_name_id': 'inputName'
        }
        self.driver = None
        options = webdriver.ChromeOptions()
        options.add_argument('--no-sandbox')
        options.add_argument('--disable-dev-shm-usage')
        self.driver = webdriver.Chrome(
            service_log_path='<somewhere>webdriver.log',
            chrome_options=options)
        self.driver.implicitly_wait(3.5)
        self.loc_mng = LocatorsManager(self.driver, 3.5)
        apiritif.put_into_thread_store(driver=self.driver, func_mode=False)

    def _1_Conditions_test(self):
        with apiritif.smart_transaction('Conditions test'):
            self.driver.get('http://blazedemo.com')

            test = self.driver.execute_script(
                'return document.getElementsByName("fromPort")[0].length > 0;')
            if test:

                var_loc_keys = self.loc_mng.get_locator([{
                    'id': 'wrong_id'
                }, {
                    'xpath':
                    '/html/body/div[3]/form/div/input'
                }])
                self.driver.find_element(var_loc_keys[0],
                                         var_loc_keys[1]).click()
                sleep(1.0)

                test = self.driver.execute_script(
                    'return document.getElementsByClassName("table")[0].rows.length > 5;'
                )
                if test:

                    var_loc_keys = self.loc_mng.get_locator([{
                        'xpath':
                        '/html/body/div[2]/table/tbody/tr[5]/td[1]/input'
                    }])
                    self.driver.find_element(var_loc_keys[0],
                                             var_loc_keys[1]).click()

                    test = self.driver.execute_script(
                        'return document.getElementById("{}").value === \'\';'.
                        format(self.vars['input_name_id']))
                    if test:

                        var_loc_keys = self.loc_mng.get_locator([{
                            'id':
                            self.vars['input_name_id']
                        }])
                        self.driver.find_element(var_loc_keys[0],
                                                 var_loc_keys[1]).clear()
                        self.driver.find_element(
                            var_loc_keys[0],
                            var_loc_keys[1]).send_keys('John Doe')
                    else:

                        var_loc_keys = self.loc_mng.get_locator([{
                            'id':
                            self.vars['input_name_id']
                        }])
                        self.driver.find_element(var_loc_keys[0],
                                                 var_loc_keys[1]).clear()
                        self.driver.find_element(
                            var_loc_keys[0],
                            var_loc_keys[1]).send_keys('Jack Green')

                    var_loc_keys = self.loc_mng.get_locator([{
                        'xpath':
                        '/html/body/div[2]/form/div[11]/div/input'
                    }])
                    self.driver.find_element(var_loc_keys[0],
                                             var_loc_keys[1]).click()
                    sleep(5.0)
            else:

                test = self.driver.execute_script(
                    'return document.getElementsByClassName("table")[0].rows.length > 5;'
                )
                if test:

                    var_loc_keys = self.loc_mng.get_locator([{
                        'id':
                        self.vars['elem2_id']
                    }])
                    self.driver.find_element(var_loc_keys[0],
                                             var_loc_keys[1]).clear()
                    self.driver.find_element(
                        var_loc_keys[0], var_loc_keys[1]).send_keys('my text')

                    test = self.driver.execute_script(
                        'return window.screen.width > 1000;')
                    if test:
                        self.driver.save_screenshot('file_1000')
                    else:
                        self.driver.save_screenshot('file')
                else:

                    var_loc_keys = self.loc_mng.get_locator([{
                        'xpath':
                        '/html/body/div[3]/input'
                    }])
                    self.driver.find_element(var_loc_keys[0],
                                             var_loc_keys[1]).click()

    def test_locsc(self):
        self._1_Conditions_test()

    def tearDown(self):
        if self.driver:
            self.driver.quit()