def test_two_elements_are_not_equal_by_value(self):
     xpath = "//foo"
     xpath2 = "//foo/bar"
     element1 = Element(self.driver, Locator(By.XPATH, xpath))
     element2 = Element(self.driver, Locator(By.XPATH, xpath2))
     assert element1 != element2
     assert not (element1 == element2)
 def test_start_stop_timer(self):
     element = Element(self.driver, None)
     element_start_time = element.start_timer(type="element")
     time.sleep(0.5)
     element_end_time = element.stop_timer(type="element")
     duration = element.get_duration(type="element")
     self.timer_assertions(element_start_time, element_end_time, duration)
示例#3
0
    def get_html(self):
        """
        Retrieves the html of the entire webpage

        :return: a str of the entire page html
        """
        return Element(self.driver, Locator.by_xpath("//html")).get_html()
    def test_get_number_by_index(self, string, index, expected):
        xpath = "//foo"
        element = Element(self.driver, Locator(By.XPATH, xpath))

        actual = element.get_number(string, result_index=index)
        assert actual == expected, "Expecting '{}' to convert to {} - actual: {}".format(
            string, expected, actual)
 def test_take_multiple_element_screenshots_with_same_name(self):
     """
     The expectation is that they overwrite each other
     """
     page = GooglePage(driver=self.driver, url="http://www.google.com")
     page.open().wait_for_page_load()
     page.element = Element(self.driver, Locator.by_xpath("//foo"))
     num_files_before = self.count_files(seleniumconfig.screenshot_dir)
     time.sleep(1)
     file1 = page.element.take_screenshot()
     time.sleep(2)
     file2 = page.element.take_screenshot(screenshot_name=file1)
     file3 = page.element.take_screenshot(screenshot_name=file1)
     filepath = "{}/{}.png".format(seleniumconfig.screenshot_dir, file1)
     time.sleep(3)
     num_files_after = self.count_files(seleniumconfig.screenshot_dir)
     assert file1 == file2 and file2 == file3, "I'm expecting the files to the same if taken really fast - file1: {} - file2: {} - file3: {}".format(
         file1, file2, file3)
     assert os.path.exists(
         filepath
     ), "Expecting that a screenshot was taken and saved here: {}".format(
         filepath)
     assert num_files_after == (
         num_files_before +
         1), "Expecting there to be 1-more screenshot taken"
 def test_start_stop_timer(self):
     element = Element(self.driver, None)
     start_time = element.start_timer()
     time.sleep(0.5)
     end_time = element.stop_timer()
     duration = element.get_duration()
     self.timer_assertions(start_time, end_time, duration)
 def __init__(self, driver, url):
     super(Wikipedia, self).__init__(driver, url)
     self.path = self.url.path
     self.headingText = TextElement(driver, Locator.by_id("firstHeading"))
     self.bodyText = TextElement(driver, Locator.by_id("bodyContent"))
     self.bodyTexts = TextElement(
         driver, Locator.by_css_selector("div#mw-content-text > div > p"))
     self.bogus_element = Element(
         driver, Locator.by_xpath("//foo")).mark_do_not_check()
 def test_ensure_element_requires_selenium_driver_without_Webdriver(self):
     """
     This test should raise an exception
     """
     try:
         Element(driver=MyDriver(driver=self.driver), locator=None)
         assert False, "Expecting Element to raise an AttributeError!"
     except AttributeError:
         pass
 def test_get_split_after_reset_timer(self):
     element = Element(self.driver, None)
     start_time = element.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)
     element.reset_timer()
     split_time = element.get_split_time()
     assert split_time == 0, "Expecting the split time to be 0 if I haven't started a timer"
 def test_disable_require_webdriver_without_webdriver(self):
     """
     This test is making sure that it does not matter if driver is a Webdriver or not
     """
     try:
         seleniumconfig.disable_check_for_selenium_webdriver = True
         Element(driver=MyDriver(driver=self.driver), locator=None)
     finally:
         seleniumconfig.disable_check_for_selenium_webdriver = False
示例#11
0
 def test_element_change_defaults_and_then_reset(self):
     seleniumconfig.reset_timeouts()
     seleniumconfig.page_timeout_in_sec = 5
     seleniumconfig.element_timeout_in_sec = 25
     element = Element(self.driver, Locator.by_xpath("//foo"))
     assert element.page_timeout == 5, "Expecting page_timeout=5"
     assert element.element_timeout == 25, "Expecting element_timeout=25"
     seleniumconfig.reset_timeouts()
     assert element.page_timeout == 30, "Expecting page_timeout=30"
     assert element.element_timeout == 10, "Expecting element_timeout=10"
 def test_take_explicit_element_screenshot(self):
     page = GooglePage(driver=self.driver, url="http://www.google.com")
     page.open().wait_for_page_load()
     page.element = Element(self.driver, Locator.by_xpath("//foo"))
     file = page.element.take_screenshot()
     filepath = "{}/{}.png".format(seleniumconfig.screenshot_dir, file)
     assert os.path.exists(
         filepath
     ), "Expecting that a screenshot was taken and saved here: {}".format(
         filepath)
 def test_take_implicit_webpage_screenshot_enabled_wait_for_page_load(self):
     page = GooglePage(driver=self.driver, url="http://www.google.com")
     page.open().wait_for_page_load()
     page.invalid_element = Element(self.driver, Locator.by_xpath("//foo"))
     num_files_before = self.count_files(seleniumconfig.screenshot_dir)
     try:
         page.wait_for_page_load(timeout=5)
     except TimeoutException:
         num_files_after = self.count_files(seleniumconfig.screenshot_dir)
         assert num_files_after == (
             num_files_before +
             1), "Expecting there to be 1-more screenshot taken"
示例#14
0
    def get_html(self, switch_in=True):
        """
        Retrieves the html of the entire page

        :param switch_in: (Default: True) This is used for automatically switching into and out of an iFrame context
        :return: a str of the entire page html
        """
        try:
            if switch_in:
                self.switch_in()
            return Element(self.driver, Locator.by_xpath("//html")).get_html()
        finally:
            if switch_in:
                self.switch_out()
    def test_take_implicit_element_screenshot_enabled_is_visible(self):
        page = GooglePage(driver=self.driver, url="http://www.google.com")
        page.open().wait_for_page_load()
        page.element = Element(self.driver, Locator.by_xpath("//foo"))
        num_files_before = self.count_files(seleniumconfig.screenshot_dir)

        try:
            page.element.is_visible(timeout=1)
        except TimeoutException:
            pass
        except NoSuchElementException:
            pass

        num_files_after = self.count_files(seleniumconfig.screenshot_dir)
        assert num_files_after == num_files_before, "Expecting there to be the same number of screenshots taken"
 def test_start_get_duration_multiple_times_timer(self):
     element = Element(self.driver, None)
     start_time = element.start_timer()
     time.sleep(0.5)
     duration = element.get_duration()
     end_time = self.driver.end_time
     time.sleep(0.5)
     actual_duration = element.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 = element.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_take_implicit_webpage_screenshot_disabled(self):
        page = GooglePage(driver=self.driver, url="http://www.google.com")
        page.open().wait_for_page_load()
        page.invalid_element = Element(self.driver, Locator.by_xpath("//foo"))
        num_files_before = self.count_files(seleniumconfig.screenshot_dir)

        # Disable taking screenshot globally
        seleniumconfig.screenshot_enabled = False

        try:
            page.wait_for_page_load(timeout=5)
        except TimeoutException:
            num_files_after = self.count_files(seleniumconfig.screenshot_dir)
            assert num_files_after == num_files_before, "Expecting there to be the same number of screenshots taken"
        finally:
            seleniumconfig.screenshot_enabled = True
 def test_start_stop_split_timer(self):
     element = Element(self.driver, None)
     start_time = element.start_timer()
     time.sleep(0.5)
     split_time = element.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 = element.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 = element.stop_timer()
     duration = element.get_duration()
     assert duration > split_time
     self.timer_assertions(start_time, end_time, duration)
 def __init__(self, driver, url=None):
     super(MyComplexPageWithErrorProperty, self).__init__(driver=driver, url=url)
     self.regular_element = Element(driver, Locator.by_xpath("//a"))
     self.invisible_element = Element(driver, Locator.by_xpath("//b")).mark_invisible()
     self.not_checked_element = Element(driver, Locator.by_xpath("//c")).mark_do_not_check()
 def __init__(self, driver, locator=None):
     super(MyComplexWidgetWithErrorProperty, self).__init__(driver=driver, locator=locator)
     self.regular_element_on_widget = Element(driver, Locator.by_xpath("//d"))
     self.invisible_element_on_widget = Element(driver, Locator.by_xpath("//e")).mark_invisible()
     self.not_checked_element_on_widget = Element(driver, Locator.by_xpath("//f")).mark_do_not_check()
 def test_get_split_timer(self):
     element = Element(self.driver, None)
     split_time = element.get_split_time()
     assert split_time == 0, "Expecting the split time to be 0 if I haven't started a timer"
 def test_start_timer(self):
     element = Element(self.driver, None)
     start_time = element.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)
 def __init__(self, driver, locator=None):
     super(MyComplexPanel, self).__init__(driver=driver, locator=locator)
     self.regular_element = Element(driver, Locator.by_xpath("//g"))
     self.invisible_element = Element(driver, Locator.by_xpath("//h")).mark_invisible()
     self.not_checked_element = Element(driver, Locator.by_xpath("//i")).mark_do_not_check()
 def __init__(self, driver, locator=None):
     super(MyComplexIframeWithErrorProperty, self).__init__(driver=driver, locator=locator)
     self.regular_element = Element(driver, Locator.by_xpath("//j"))
     self.invisible_element = Element(driver, Locator.by_xpath("//k")).mark_invisible()
     self.not_checked_element = Element(driver, Locator.by_xpath("//l")).mark_do_not_check()
 def test_ensure_element_requires_selenium_driver_with_Webdriver(self):
     """
     This test should not raise an exception
     """
     Element(driver=self.driver, locator=None)
 def test_element_start_timer(self):
     element = Element(self.driver, None)
     element_start_time = element.start_timer(type="element")
     assert hasattr(self.driver, "element_start_time")
     assert self.driver.element_start_time == element_start_time, "Expecting the element_start_time = {} - actual: {}".format(
         element_start_time, self.driver.element_start_time)
 def test_define_element_with_no_locator(self):
     element = Element(self.driver, locator=None)
     assert isinstance(element, Element)
     assert element.locator is None
 def test_instantiate_element(self):
     xpath = "//foo"
     element = Element(self.driver, Locator(By.XPATH, xpath))
     assert element != None
示例#29
0
 def test_element(self):
     """Element --> object"""
     element = Element(self.driver, Locator(By.XPATH, "//foo"))
     assert isinstance(element, Element)
     assert isinstance(element, object)
 def test_two_elements_are_not_equal_by_by(self):
     xpath = "//foo"
     element1 = Element(self.driver, Locator(By.XPATH, xpath))
     element2 = Element(self.driver, Locator(By.CLASS_NAME, xpath))
     assert element1 != element2
     assert not (element1 == element2)