예제 #1
0
 def _1_Test(self):
     with apiritif.smart_transaction('Test'):
         apiritif.external_log('start: go(http://blazedemo.com/)')
         go('http://blazedemo.com/')
         apiritif.external_log('end: go(http://blazedemo.com/)')
         apiritif.external_log('start: log(leaving blazedemo)')
         apiritif.external_log('leaving blazedemo')
         apiritif.external_log('end: log(leaving blazedemo)')
예제 #2
0
 def _1_(self):
     with apiritif.smart_transaction('/'):
         go('http://blazedemo.com/')
         wait_for('present', [{'xpath': "//input[@type='submit']"}], 3.5)
         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")
예제 #3
0
    def _1_Conditions_test(self):
        with apiritif.smart_transaction('Conditions test'):
            go('http://blazedemo.com')

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

                var_loc_keys = 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()
                check_opened_new_window()
                sleep(1.0)

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

                    var_loc_keys = 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()
                    check_opened_new_window()

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

                        var_loc_keys = 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 = 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 = 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()
                    check_opened_new_window()
                    sleep(5.0)
            else:

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

                    var_loc_keys = 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 = get_locator([{'xpath': '/html/body/div[3]/input'}])
                    self.driver.find_element(
                        var_loc_keys[0],
                        var_loc_keys[1]).click()
                    check_opened_new_window()
예제 #4
0
    def _1_Test_V2(self):
        with apiritif.smart_transaction('Test V2'):
            go('http://blazedemo.com')
            self.driver.set_window_size('750', '750')
            switch_window(0)

            var_loc_chain = get_locator([{'id': 'invalid_id'}, {'xpath': self.vars['my_xpath_locator']}])
            ActionChains(self.driver).click_and_hold(self.driver.find_element(
                var_loc_chain[0],
                var_loc_chain[1])).perform()

            var_loc_chain = 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 = 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 = get_locator([{'name': 'invalid_name'}, {'xpath': '/html/body/div[2]/div/p[2]/a'}])

            target = 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 = 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 = 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 = 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')
            self.assertTrue(self.driver.execute_script('return 10 === 2*5;'), '10 === 2*5')

            self.vars['var_eval'] = self.driver.execute_script('return 0 == false;')

            var_loc_keys = 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()
            check_opened_new_window()

            var_loc_keys = 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 = 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 = 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)
            wait_for('visible', [{'css': 'invalid_css'}, {'name': 'inputName'}], 3.5)
            wait_for('visible', [{'css': 'invalid_css'}, {'name': 'inputName'}], 9020.0)

            var_edit_content = 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)
            open_window('vacation.html')
            self.driver.maximize_window()
            switch_frame('index=1')
            switch_frame('relative=parent')
            switch_frame(self.driver.find_element(By.NAME, 'my_frame'))
            close_window()
            dialogs_answer_on_next_prompt('my input')
            dialogs_answer_on_next_confirm('#Ok')
            dialogs_answer_on_next_alert('#Ok')

            dialog = dialogs_get_next_alert()
            self.assertIsNotNone(dialog, 'No dialog of type alert appeared')
            self.assertEqual(dialog, 'Exception occurred!', "Dialog message didn't match")

            dialog = dialogs_get_next_confirm()
            self.assertIsNotNone(dialog, 'No dialog of type confirm appeared')
            self.assertEqual(dialog, 'Are you sure?', "Dialog message didn't match")

            dialog = dialogs_get_next_prompt()
            self.assertIsNotNone(dialog, 'No dialog of type prompt appeared')
            self.assertEqual(dialog, 'What is your age?', "Dialog message didn't match")
예제 #5
0
    def _1_(self):
        with apiritif.smart_transaction('/'):
            go('http://blazedemo.com/')
            wait_for('present', [{'xpath': "//input[@type='submit']"}], 3.5)
            wait_for('present', [{'xpath': "//input[@name='test,name']"}], 80.0)
            self.assertEqual(self.driver.title, 'BlazeDemo')

            var_loc_chain = 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 = 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 = get_locator([{'xpath': '/html/body/div[3]/form/select[1]'}])
            ActionChains(self.driver).context_click(self.driver.find_element(
                var_loc_chain[0],
                var_loc_chain[1])).perform()

            var_loc_chain = 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 = 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 = 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 = 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 = 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 = 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())
            wait_for('visible', [{'name': 'toPort'}], 3.5)

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

            var_loc_keys = 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 = get_locator([{'name': 'toPort'}])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).send_keys(Keys.ENTER)

            var_loc_keys = 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 = get_locator([{'xpath': '//div[3]/form/select[1]//option[3]'}])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).click()
            check_opened_new_window()

            var_loc_keys = get_locator([{'xpath': '//div[3]/form/select[2]//option[6]'}])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).click()
            check_opened_new_window()
            switch_window('0')
            open_window('some.url')
            switch_window('win_ser_local')
            switch_window('win_ser_1')
            switch_window('that_window')
            close_window('1')
            close_window('win_ser_local')
            close_window('win_ser_1')
            close_window('that_window')

            var_loc_keys = 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 = get_locator([{'id': 'address'}])

            target = 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()
            switch_frame(self.driver.find_element(By.NAME, 'my_frame'))
            switch_frame(self.driver.find_element(By.NAME, 'top_frame'))
            switch_frame(self.driver.find_element(By.XPATH, "//*[@id='result']"))
            switch_frame(self.driver.find_element(By.CSS_SELECTOR, '.my_class'))
            switch_frame(self.driver.find_element(By.ID, 'frame_id'))
            switch_frame('index=1')
            switch_frame('relative=parent')

            var_edit_content = 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 = get_locator([{'linktext': 'destination of the week! The Beach!'}])
            self.driver.find_element(
                var_loc_keys[0],
                var_loc_keys[1]).click()
            check_opened_new_window()

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

            var_loc_as = 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 = 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')
            go('http:\\blazemeter.com')

            dialog = dialogs_get_next_alert()
            self.assertIsNotNone(dialog, 'No dialog of type alert appeared')
            self.assertEqual(dialog, 'Alert Message', "Dialog message didn't match")

            dialog = dialogs_get_next_prompt()
            self.assertIsNotNone(dialog, 'No dialog of type prompt appeared')
            self.assertEqual(dialog, 'Enter value', "Dialog message didn't match")

            dialog = dialogs_get_next_confirm()
            self.assertIsNotNone(dialog, 'No dialog of type confirm appeared')
            self.assertEqual(dialog, 'Are you sure?', "Dialog message didn't match")
            dialogs_answer_on_next_prompt('myvalue')
            dialogs_answer_on_next_confirm('#Ok')
            dialogs_answer_on_next_alert('#Ok')
            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")