コード例 #1
0
 def isOpen(self, suppressLog=False):
     """
         Check if page is loaded and visible by verifying if its unique components ('token') are
           present and visible on page.
         Can be overwritten in sub-classes for better page recognition by inspecting multiple
           page-specific components.
     """
     if hasattr(self, 'token'):
         if not isinstance(self.token, list):
             tokens = [self.token]
         else:
             tokens = self.token
         isOpen = True
         for token in tokens:
             if not (token.isPresent() and token.isVisible()):
                 isOpen = False
                 break
     else:
         raise PageException(message=('%s: Page token is not defined.' %
                                      self.name),
                             driver=self.driver,
                             screenshotName=self.name + '.isOpen')
     if not suppressLog:
         LOG.l4('%s.isOpen(): %s' % (self.name, isOpen))
     return isOpen
コード例 #2
0
 def submit(self):
     """
         Submit dialog by clicking on button 'OK'.
     """
     self.activePage.btnOK.waitUntilEnabled()
     self.activePage.btnOK.click()
     self.activePage.waitUntilClosed()
     LOG.l4('%s.submit()' % self.name)
コード例 #3
0
 def open(self, wait=True):
     """
         Open web page in browser.
     """
     LOG.l4("%s.open(): URL='%s'" % (self.name, self.url))
     self.webDriver.get(self.url)
     if wait:
         try:
             self.waitUntilOpen()
         except PageException:
             pass
     if self.validateLayout:
         self.doValidation()
     LOG.l4("%s.open(): Done." % self.name)
コード例 #4
0
 def takeScreenshot(self, name):
     """
         Save screenshot of active web page to PNG file.
         @param name: Name of screenshot file.
     """
     if LOG.getLogDir() is not None:
         logDirectory = LOG.getLogDir()
     else:
         logDirectory = os.getcwd()
     pathFileName = os.path.join(
         logDirectory, name + '.' +
         express.getUnixTime(formatstr='%Y%m%d_%H%M%S') + '.png')
     self.webDriver.save_screenshot(pathFileName)
     LOG.l4("Mangal.Driver: takeScreenshot(): Saved into '%s'" %
            pathFileName)
コード例 #5
0
 def waitUntilLoaded(self):
     """
         Generic solution, may not be the best in any case. More robust approach is to verify
           presence/readiness of an element belonging to particular page.
     """
     try:
         WebDriverWait(
             driver=self.webDriver, timeout=self.driver.timeout).until(
                 lambda _: self.webDriver.execute_script(
                     script='return document.readyState') == 'complete')
     except TimeoutException:
         raise PageException(message="%s.waitUntilLoaded: Time out." %
                             self.name,
                             driver=self.driver,
                             screenshotName=self.name + '.waitUntilLoaded')
     LOG.l4('%s.waitUntilLoaded()' % self.name)
コード例 #6
0
 def cancel(self):
     """
         Cancel dialog by clicking on button 'Cancel'.
         Can be overwritten in sub-class.
     """
     if hasattr(self.activePage, 'cancel') and callable(
             self.activePage.cancel):
         self.activePage.cancel()
         self.activePage.waitUntilClosed()
         self.activePageNumber = -1
         self.activePage = None
     elif hasattr(self.activePage, 'btnCancel'):
         self.activePage.btnCancel.waitUntilEnabled()
         self.activePage.btnCancel.click()
         # Wait for page to be closed
         self.activePage.waitUntilClosed()
         self.activePageNumber = -1
         self.activePage = None
     else:
         raise PageException(
             message='%s.%s.cancel(): Page cannot be canceled.' %
             (self.name, self.activePage.name),
             screenshotName=self.name + '.cancel')
     LOG.l4('%s.cancel()' % self.name)
コード例 #7
0
 def quit(self):
     LOG.l4('Quitting WebDriver')
     try:
         self.webDriver.quit()
     except WebDriverException, e:
         LOG.l4('WebDriver.quit():', e.msg)
コード例 #8
0
 def close(self):
     LOG.l4('Closing browser active window')
     try:
         self.webDriver.close()
     except WebDriverException, e:
         LOG.l4('WebDriver.close():', e.msg)
コード例 #9
0
 def back(self):
     LOG.l4('Navigating back in browser history')
     self.webDriver.back()
コード例 #10
0
 def forward(self):
     LOG.l4('Navigating forward in browser history')
     self.webDriver.forward()
コード例 #11
0
 def reload(self):
     self.webDriver.refresh()
     LOG.l4("%s.reload(): url='%s'" % (self.name, self.url))