def test_start_stop_timer(self): page = testingwebpages.MyComplexPage(self.driver) start_time = page.start_timer() time.sleep(0.5) end_time = page.stop_timer() duration = page.get_duration() self.timer_assertions(start_time, end_time, duration)
def test_get_element_attr_dict(self): page = testingwebpages.MyComplexPage(self.driver) elements = page.get_element_attr(result_type=dict) assert len(elements) == 3, 'Expecting 3 elements' assert 'regular_element' in elements assert 'invisible_element' in elements assert 'not_checked_element' in elements
def test_start_stop_timer(self): page = testingwebpages.MyComplexPage(self.driver) page_start_time = page.start_timer(type="page") time.sleep(0.5) page_end_time = page.stop_timer(type="page") duration = page.get_duration(type="page") self.timer_assertions(page_start_time, page_end_time, duration)
def test_access_element_defined_indirectly_on_webpage(self): page = testingwebpages.MyComplexPage(self.driver) # None of these should throw an AttributeError page.regular_element page.invisible_element page.not_checked_element
def test_get_split_after_reset_timer(self): page = testingwebpages.MyComplexPage(self.driver) page_start_time = page.start_timer(type="page") assert hasattr(self.driver, "page_start_time") assert self.driver.page_start_time == page_start_time, "Expecting the page_start_time = {} - actual: {}".format( page_start_time, self.driver.page_start_time) page.reset_timer(type="page") split_time = page.get_split_time(type="page") assert split_time == 0, "Expecting the split time to be 0 if I haven't started a timer"
def test_get_element_attr_dict_with_iframe(self): page = testingwebpages.MyComplexPage(self.driver) visible_iframe = testingwebpages.MyComplexIframe( self.driver, Locator.by_xpath("//iframe")) page.visible_iframe = visible_iframe elements = page.get_element_attr(result_type=dict) assert len(elements) == 4, 'Expecting 4 elements' assert 'regular_element' in elements assert 'invisible_element' in elements assert 'not_checked_element' in elements assert 'visible_iframe' in elements
def test_complex_page(self): page = testingwebpages.MyComplexPage(self.driver) elements = page.get_element_attr() meta_data = self.calculate_meta(elements) assert len( elements ) == 3, "Expecting there to be 3 elements in this test complex page" assert meta_data['types'][ 'element'] == 3, "Expecting there to be 3 Element types" assert meta_data['visible'] == 1, "Expecting there to be 1 visible" assert meta_data['invisible'] == 1, "Expecting there to be 1 invisible" assert meta_data[ 'do-not-check'] == 1, "Expecting there to be 1 do-not-check"
def test_complex_page_with_multiple_iframes(self): page = testingwebpages.MyComplexPage(self.driver) visible_widget = testingwebpages.MyComplexWidget( self.driver, Locator.by_xpath("//widget")) visible_widget.visible_iframe = testingwebpages.MyComplexIframe( self.driver, Locator.by_xpath("//iframe1")) page.visible_widget = visible_widget page.visible_iframe = testingwebpages.MyComplexIframe( self.driver, Locator.by_xpath("//iframe2")) try: page.get_element_attr() assert False, "Expecting to throw an AttributeError because 2 iframes were defined on a page" except AttributeError: pass
def test_access_element_not_defined_directly_on_webpage(self): page = testingwebpages.MyComplexPage(self.driver) visible_widget = testingwebpages.MyComplexWidget( self.driver, Locator.by_xpath("//widget")) page.visible_widget = visible_widget # None of these should throw an AttributeError page.regular_element page.invisible_element page.not_checked_element page.visible_widget page.regular_element_on_widget page.invisible_element_on_widget page.not_checked_element_on_widget
def test_access_element_not_definedy_on_webpage(self): page = testingwebpages.MyComplexPage(self.driver) visible_iframe = testingwebpages.MyComplexIframe( self.driver, Locator.by_xpath("//iframe")) visible_widget = testingwebpages.MyComplexWidget( self.driver, Locator.by_xpath("//widget")) page.visible_iframe = visible_iframe page.visible_widget = visible_widget try: page.foobar assert False, "Expecting page.foobar to throw an AttributeError!" except AttributeError: pass
def test_get_element_attr_dict_with_expanded_widget(self): page = testingwebpages.MyComplexPage(self.driver) visible_widget = testingwebpages.MyComplexWidget( self.driver, Locator.by_xpath("//widget")) page.visible_widget = visible_widget elements = page.get_element_attr(result_type=dict) assert len(elements) == 7, 'Expecting 7 elements' assert 'regular_element' in elements assert 'invisible_element' in elements assert 'not_checked_element' in elements assert 'visible_widget' in elements assert 'regular_element_on_widget' in elements assert 'invisible_element_on_widget' in elements assert 'not_checked_element_on_widget' in elements
def test_start_get_duration_multiple_times_timer(self): page = testingwebpages.MyComplexPage(self.driver) start_time = page.start_timer() time.sleep(0.5) duration = page.get_duration() end_time = self.driver.end_time time.sleep(0.5) actual_duration = page.get_duration() assert str(actual_duration) == str(duration), "Expecting duration to be the same - actual: {} - expected: {}".format( actual_duration, duration) time.sleep(0.5) actual_duration = page.get_duration() assert str(actual_duration) == str(duration), "Expecting duration to be the same - actual: {} - expected: {}".format( actual_duration, duration) self.timer_assertions(start_time, end_time, duration)
def test_start_stop_split_timer(self): page = testingwebpages.MyComplexPage(self.driver) start_time = page.start_timer() time.sleep(0.5) split_time = page.get_split_time() assert split_time > 0 assert not hasattr(self.driver, "end_time") or self.driver.end_time == 0 time.sleep(0.5) split_time = page.get_split_time() assert not hasattr(self.driver, "end_time") or self.driver.end_time == 0 assert split_time > 0 time.sleep(0.5) end_time = page.stop_timer() duration = page.get_duration() assert duration > split_time self.timer_assertions(start_time, end_time, duration)
def test_complex_page_with_do_not_check_widget(self): page = testingwebpages.MyComplexPage(self.driver) page.visible_widget = testingwebpages.MyComplexWidget( self.driver, Locator.by_xpath("//widget")).mark_do_not_check() elements = page.get_element_attr() meta_data = self.calculate_meta(elements) assert len( elements ) == 4, "Expecting there to be 4 elements in this test complex page" assert meta_data['types'][ 'element'] == 3, "Expecting there to be 3 Element types" assert meta_data['types'][ 'widget'] == 1, "Expecting there to be 1 Widget types" assert meta_data['visible'] == 1, "Expecting there to be 1 visible" assert meta_data['invisible'] == 1, "Expecting there to be 1 invisible" assert meta_data[ 'do-not-check'] == 2, "Expecting there to be 2 do-not-check"
def test_complex_page_with_iframe(self): page = testingwebpages.MyComplexPage(self.driver) page.visible_iframe = testingwebpages.MyComplexIframe( self.driver, Locator.by_xpath("//iframe")) elements = page.get_element_attr() meta_data = self.calculate_meta(elements) assert len( elements ) == 4, "Expecting there to be 4 elements in this test complex page" assert meta_data['types'][ 'element'] == 3, "Expecting there to be 3 Element types" assert meta_data['types'][ 'iframe'] == 1, "Expecting there to be 1 IFrame types" assert meta_data['visible'] == 2, "Expecting there to be 2 visible" assert meta_data['invisible'] == 1, "Expecting there to be 1 invisible" assert meta_data[ 'do-not-check'] == 1, "Expecting there to be 1 do-not-check"
def test_start_stop_split_timer(self): page = testingwebpages.MyComplexPage(self.driver) page_start_time = page.start_timer(type="page") time.sleep(0.5) split_time = page.get_split_time(type="page") assert split_time > 0 assert not hasattr(self.driver, "page_end_time") or self.driver.page_end_time == 0 time.sleep(0.5) split_time = page.get_split_time(type="page") assert not hasattr(self.driver, "page_end_time") or self.driver.page_end_time == 0 assert split_time > 0 time.sleep(0.5) page_end_time = page.stop_timer(type="page") duration = page.get_duration(type="page") assert duration > split_time self.timer_assertions(page_start_time, page_end_time, duration)
def test_complex_page_with_widget_do_not_check_panel(self): page = testingwebpages.MyComplexPage(self.driver) visible_widget = testingwebpages.MyComplexWidget( self.driver, Locator.by_xpath("//widget")) visible_widget.do_not_check_panel = testingwebpages.MyComplexPanel( self.driver, Locator.by_xpath("//panel")).mark_do_not_check() page.visible_widget = visible_widget elements = page.get_element_attr() meta_data = self.calculate_meta(elements) assert len( elements ) == 8, "Expecting there to be 8 elements in this test complex page" assert meta_data['types'][ 'element'] == 6, "Expecting there to be 6 Element types" assert meta_data['types'][ 'widget'] == 1, "Expecting there to be 1 Widget types" assert meta_data['types'][ 'panel'] == 1, "Expecting there to be 1 Panel types" assert meta_data['visible'] == 3, "Expecting there to be 3 visible" assert meta_data['invisible'] == 2, "Expecting there to be 2 invisible" assert meta_data[ 'do-not-check'] == 3, "Expecting there to be 3 do-not-check"
def test_complex_page_with_widget_iframe(self): page = testingwebpages.MyComplexPage(self.driver) visible_widget = testingwebpages.MyComplexWidget( self.driver, Locator.by_xpath("//widget")) visible_widget.visible_iframe = testingwebpages.MyComplexIframe( self.driver, Locator.by_xpath("//iframe")) page.visible_widget = visible_widget elements = page.get_element_attr() meta_data = self.calculate_meta(elements) assert len( elements ) == 8, "Expecting there to be 8 elements in this test complex page" assert meta_data['types'][ 'element'] == 6, "Expecting there to be 6 Element types" assert meta_data['types'][ 'widget'] == 1, "Expecting there to be 1 Widget types" assert meta_data['types'][ 'iframe'] == 1, "Expecting there to be 1 IFrame types" assert meta_data['visible'] == 4, "Expecting there to be 4 visible" assert meta_data['invisible'] == 2, "Expecting there to be 2 invisible" assert meta_data[ 'do-not-check'] == 2, "Expecting there to be 2 do-not-check"
def test_get_split_timer(self): page = testingwebpages.MyComplexPage(self.driver) split_time = page.get_split_time(type="page") assert split_time == 0, "Expecting the split time to be 0 if I haven't started a timer"
def test_start_timer(self): page = testingwebpages.MyComplexPage(self.driver) page_start_time = page.start_timer(type="page") assert hasattr(self.driver, "page_start_time") assert self.driver.page_start_time == page_start_time, "Expecting the page_start_time = {} - actual: {}".format( page_start_time, self.driver.page_start_time)
def test_start_timer(self): page = testingwebpages.MyComplexPage(self.driver) start_time = page.start_timer() assert hasattr(self.driver, "start_time") assert self.driver.start_time == start_time, "Expecting the start_time = {} - actual: {}".format( start_time, self.driver.start_time)