Exemple #1
0
 def Refresh(cls, times=4):
     log.step_normal(u"Element [%s]: Browser Refresh" % (cls.__name__,))
     
     for i in range(times):
         action = webdriver.ActionChains(env.threadlocal.BROWSER)
         action.key_down(Keys.CONTROL).send_keys(Keys.F5).key_up(Keys.CONTROL).perform()
         time.sleep(5)
Exemple #2
0
 def VerifyEnabled(cls, trueOrfalse):
     log.step_normal(u"Element [%s]: Verify Enabled = [%s]" % (cls.__name__, trueOrfalse))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     is_disabled = elements[cls.index].get_attribute("disabled")
     log.step_normal(u"Element [%s]: attribute 'is_disabled' = [%s]" % (cls.__name__, is_disabled))
     
     if is_disabled == "true":
         if trueOrfalse == False:
             log.step_pass("Pass...")
         else:
             log.step_fail("Fail...")
     
     elif elements[cls.index].is_enabled():
         if trueOrfalse == True:
             log.step_pass("Pass")
         else:
             log.step_fail("Fail")
     
     else:
         log.step_fail("Not verified.")
     
     
     cls.__clearup()
Exemple #3
0
 def GetParentElement(cls):
     log.step_normal("Element [%s]: GetParentElement()" % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     return elements[cls.index].parent()
Exemple #4
0
 def GetParentElement(cls):
     log.step_normal("Element [%s]: GetParentElement()" % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     return elements[cls.index].parent()
Exemple #5
0
 def VerifyEnabled(cls, trueOrfalse):
     log.step_normal(u"Element [%s]: Verify Enabled = [%s]" % (cls.__name__, trueOrfalse))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     is_disabled = elements[cls.index].get_attribute("disabled")
     log.step_normal(u"Element [%s]: attribute 'is_disabled' = [%s]" % (cls.__name__, is_disabled))
     
     if is_disabled == "true":
         if trueOrfalse == False:
             log.step_pass("Pass...")
         else:
             log.step_fail("Fail...")
     
     elif elements[cls.index].is_enabled():
         if trueOrfalse == True:
             log.step_pass("Pass")
         else:
             log.step_fail("Fail")
     
     else:
         log.step_fail("Not verified.")
     
     
     cls.__clearup()
Exemple #6
0
 def Refresh(cls, times=4):
     log.step_normal(u"Element [%s]: Browser Refresh" % (cls.__name__,))
     
     for i in range(times):
         action = webdriver.ActionChains(env.threadlocal.BROWSER)
         action.key_down(Keys.CONTROL).send_keys(Keys.F5).key_up(Keys.CONTROL).perform()
         time.sleep(5)
Exemple #7
0
 def AlertSendKeys(cls, value):
     log.step_normal("AlertSendKeys [%s]" % value)
     try:
         env.threadlocal.BROWSER.switch_to.alert.send_keys(value)
         env.threadlocal.BROWSER.switch_to.default_content()
     except:
         log.step_warning(str(sys.exc_info()))
Exemple #8
0
 def cell_by_colname(self, rowx, col_name):
     for colx in range(0, self.sheet.ncols):
         if self.data[0][colx] == col_name:
             log.step_normal("[%s][%s]=[%s]" % (colx, col_name, self.data[rowx][colx]))
             return self.data[rowx][colx]
     
     return "ERROR: NO DATA FETCHED!"
Exemple #9
0
 def cell_by_rowname(self, row_name, colx):
     for rowx in range(0, self.sheet.nrows):
         if self.data[rowx][0] == row_name:
             log.step_normal("[%s][%s]=[%s]" % (row_name, colx, self.data[rowx][colx]))
             return self.data[rowx][colx]
     
     return "ERROR: NO DATA FETCHED!"
Exemple #10
0
 def AlertSendKeys(cls, value):
     log.step_normal("AlertSendKeys [%s]" % value)
     try:
         env.threadlocal.BROWSER.switch_to.alert.send_keys(value)
         env.threadlocal.BROWSER.switch_to.default_content()
     except:
         log.step_warning(str(sys.exc_info()))
Exemple #11
0
 def GetElementObj(cls): #### get real time obj counts, without waiting.
     log.step_normal("Element [%s]: GetElementObj." % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     cls.__clearup()
     return elements[cls.index]
Exemple #12
0
 def GetElementObj(cls): #### get real time obj counts, without waiting.
     log.step_normal("Element [%s]: GetElementObj." % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     cls.__clearup()
     return elements[cls.index]
Exemple #13
0
    def SwitchToDefaultContent(cls):
        log.step_normal("SwitchToDefaultContent()")
        
        try:
#           env.threadlocal.BROWSER.switch_to_default_content()
            env.threadlocal.BROWSER.switch_to.default_content()
        except:
            log.step_warning("env.threadlocal.BROWSER.switch_to.default_content()")
            pass
Exemple #14
0
 def AlertTextHave(cls, txt_value):
     log.step_normal("AlertTextHave [%s]" % txt_value)
     alert_text = env.threadlocal.BROWSER.switch_to_alert().text()
     
     if txt_value in alert_text:
         log.step_pass("pass")
     else:
         log.step_fail("fail")
     env.threadlocal.BROWSER.switch_to_default_content()
Exemple #15
0
    def SwitchToDefaultContent(cls):
        log.step_normal("SwitchToDefaultContent()")
        
        try:
#           env.threadlocal.BROWSER.switch_to_default_content()
            env.threadlocal.BROWSER.switch_to.default_content()
        except:
            log.step_warning("env.threadlocal.BROWSER.switch_to.default_content()")
            pass
Exemple #16
0
 def AlertTextHave(cls, txt_value):
     log.step_normal("AlertTextHave [%s]" % txt_value)
     alert_text = env.threadlocal.BROWSER.switch_to_alert().text()
     
     if txt_value in alert_text:
         log.step_pass("pass")
     else:
         log.step_fail("fail")
     env.threadlocal.BROWSER.switch_to_default_content()
Exemple #17
0
 def GetInnerHTML(cls):
     log.step_normal(u"Element [%s]: GetInnerHTML()" % (cls.__name__, ))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     log.step_normal(u"Element [%s]: InnerHTML = [%s]" % (cls.__name__, elements[cls.index].get_attribute('innerHTML')))
     
     cls.__clearup()
     return elements[cls.index].get_attribute('innerHTML')
Exemple #18
0
 def GetInnerHTML(cls):
     log.step_normal(u"Element [%s]: GetInnerHTML()" % (cls.__name__, ))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     log.step_normal(u"Element [%s]: InnerHTML = [%s]" % (cls.__name__, elements[cls.index].get_attribute('innerHTML')))
     
     cls.__clearup()
     return elements[cls.index].get_attribute('innerHTML')
Exemple #19
0
 def SwitchToDefaultWindow(cls):
     log.step_normal("SwitchToDefaultWindow()")
     
     log.step_normal("Switch To The Default Window of: %s" % str(env.threadlocal.BROWSER.window_handles))
     
     try:
         env.threadlocal.BROWSER.switch_to.window(env.threadlocal.BROWSER.window_handles[0])
     except:
         log.step_warning("env.threadlocal.BROWSER.switch_to.window(env.threadlocal.BROWSER.window_handles[0])")
         pass
Exemple #20
0
 def GetObjectsCount(cls):
     log.step_normal("Element [%s]: GetObjectsCount." % (cls.__name__))
     
     cls.__wait_for_appearing()
     
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     log.step_normal("Element [%s]: GetObjectsCount = [%s]" % (cls.__name__, len(elements)))
     
     cls.__clearup()
     return len(elements)
Exemple #21
0
 def SwitchToDefaultWindow(cls):
     log.step_normal("SwitchToDefaultWindow()")
     
     log.step_normal("Switch To The Default Window of: %s" % str(env.threadlocal.BROWSER.window_handles))
     
     try:
         env.threadlocal.BROWSER.switch_to.window(env.threadlocal.BROWSER.window_handles[0])
     except:
         log.step_warning("env.threadlocal.BROWSER.switch_to.window(env.threadlocal.BROWSER.window_handles[0])")
         pass
Exemple #22
0
 def GetObjectsCount(cls):
     log.step_normal("Element [%s]: GetObjectsCount." % (cls.__name__))
     
     cls.__wait_for_appearing()
     
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     log.step_normal("Element [%s]: GetObjectsCount = [%s]" % (cls.__name__, len(elements)))
     
     cls.__clearup()
     return len(elements)
Exemple #23
0
 def VerifyAttribute(cls, name, value, method='equal'):
     '''
     Example:
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='equal')
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='contain')
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='in')
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='not equal')
     
     Description for "method":
         equal  => real value is 'hello'
         has    => real value contains 'hello', e.g. 'hello world'.
         in     => real value in 'hello', e.g. 'he'
         differ => real value not equal to 'hello', e.g. 'hehe'
     
     '''
     log.step_normal("Element [%s]: VerifyAttribute [%s] <%s> [%s]." % (cls.__name__, name, method, value))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     realvalue = elements[cls.index].get_attribute(name)
     
     if method.lower() == 'equal':
         if value == realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'not equal':
         if not value == realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'contain':
         if value in realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'not contain':
         if not value in realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'in':
         if realvalue in value:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     else:
         log.step_fail("code error.")
     
     cls.__clearup()
Exemple #24
0
 def VerifyAttribute(cls, name, value, method='equal'):
     '''
     Example:
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='equal')
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='contain')
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='in')
         NewClaim.Dates.ReminderDate.VerifyAttribute('ng-model', 'hello', method='not equal')
     
     Description for "method":
         equal  => real value is 'hello'
         has    => real value contains 'hello', e.g. 'hello world'.
         in     => real value in 'hello', e.g. 'he'
         differ => real value not equal to 'hello', e.g. 'hehe'
     
     '''
     log.step_normal("Element [%s]: VerifyAttribute [%s] <%s> [%s]." % (cls.__name__, name, method, value))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     realvalue = elements[cls.index].get_attribute(name)
     
     if method.lower() == 'equal':
         if value == realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'not equal':
         if not value == realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'contain':
         if value in realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'not contain':
         if not value in realvalue:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     elif method.lower() == 'in':
         if realvalue in value:
             log.step_pass("real value=[%s]" % realvalue)
         else:
             log.step_fail("real value=[%s]" % realvalue)
     
     else:
         log.step_fail("code error.")
     
     cls.__clearup()
Exemple #25
0
 def GetAttribute(cls, attr):
     log.step_normal(u"Element [%s]: GetAttribute [%s]." % (cls.__name__, attr))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     attr_value = elements[cls.index].get_attribute(attr)
     log.step_normal(u"Element [%s]: Attribute Value = [%s]." % (cls.__name__, attr_value))
     
     cls.__clearup()
     return attr_value
Exemple #26
0
 def ReleaseClick(cls):
     log.step_normal("Element [%s]: ReleaseClick()" % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     action = webdriver.ActionChains(env.threadlocal.BROWSER)
     action.release(elements[cls.index])
     action.perform()
     
     cls.__clearup()
Exemple #27
0
 def SendEnter(cls):
     log.step_normal(u"Element [%s]: SendEnter()" % (cls.__name__, ))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     action = webdriver.ActionChains(env.threadlocal.BROWSER)
     action.send_keys_to_element(elements[cls.index], Keys.ENTER)
     action.perform()
     
     cls.__clearup()
Exemple #28
0
 def SendEnter(cls):
     log.step_normal(u"Element [%s]: SendEnter()" % (cls.__name__, ))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     action = webdriver.ActionChains(env.threadlocal.BROWSER)
     action.send_keys_to_element(elements[cls.index], Keys.ENTER)
     action.perform()
     
     cls.__clearup()
Exemple #29
0
 def GetAttribute(cls, attr):
     log.step_normal(u"Element [%s]: GetAttribute [%s]." % (cls.__name__, attr))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     attr_value = elements[cls.index].get_attribute(attr)
     log.step_normal(u"Element [%s]: Attribute Value = [%s]." % (cls.__name__, attr_value))
     
     cls.__clearup()
     return attr_value
Exemple #30
0
 def ReleaseClick(cls):
     log.step_normal("Element [%s]: ReleaseClick()" % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     action = webdriver.ActionChains(env.threadlocal.BROWSER)
     action.release(elements[cls.index])
     action.perform()
     
     cls.__clearup()
Exemple #31
0
 def IsVisible(cls):
     log.step_normal("Element [%s]: IsVisible?" % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     if elements[cls.index].is_displayed():
         cls.__clearup()
         return True
     else:
         cls.__clearup()
         return False
Exemple #32
0
def send_keys_to_dialog(title=r".*Upload.*", key_valus=r""):
    log.step_normal("send_keys_to_dialogue(%s, %s)" % (title, key_valus))

    win_dialog = WindowFinder()

    win_dialog.find_window_wildcard(title)
    win_dialog.set_foreground()

    time.sleep(2)

    SendKeys.SendKeys(key_valus)
    SendKeys.SendKeys("{ENTER}")
Exemple #33
0
def send_keys_to_dialog(title=r".*Upload.*", key_valus=r""):
    log.step_normal("send_keys_to_dialogue(%s, %s)" % (title, key_valus))
    
    win_dialog = WindowFinder()
    
    win_dialog.find_window_wildcard(title) 
    win_dialog.set_foreground()
    
    time.sleep(2)
    
    SendKeys.SendKeys(key_valus)
    SendKeys.SendKeys("{ENTER}")
Exemple #34
0
 def IsVisible(cls):
     log.step_normal("Element [%s]: IsVisible?" % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     if elements[cls.index].is_displayed():
         cls.__clearup()
         return True
     else:
         cls.__clearup()
         return False
Exemple #35
0
 def IsAttribute(cls, name, value, method="contain"):
     log.step_normal("Element [%s]: IsAttribute [%s] <%s> [%s]." % (cls.__name__, name, method, value))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     realvalue = elements[cls.index].get_attribute(name)
     
     if method.lower() == 'equal':
         if value == realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'not equal':
         if not value == realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'contain':
         if value in realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'not contain':
         if not value in realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'in':
         if realvalue in value:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     
     else:
         log.step_fail("code error.")
     
     cls.__clearup()
Exemple #36
0
 def IsAttribute(cls, name, value, method="contain"):
     log.step_normal("Element [%s]: IsAttribute [%s] <%s> [%s]." % (cls.__name__, name, method, value))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     realvalue = elements[cls.index].get_attribute(name)
     
     if method.lower() == 'equal':
         if value == realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'not equal':
         if not value == realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'contain':
         if value in realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'not contain':
         if not value in realvalue:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     elif method.lower() == 'in':
         if realvalue in value:
             cls.__clearup()
             return True
         else:
             cls.__clearup()
             return False
     
     
     else:
         log.step_fail("code error.")
     
     cls.__clearup()
Exemple #37
0
 def __wait_for_enabled(cls):
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     if elements[cls.index].is_enabled():
         return
     else:
         t = 0
         while t < 90:
             if elements[cls.index].is_enabled():
                 break
             
             log.step_normal("Element [%s]: __wait_for_enabled for 1 second, By [%s :: %s :: %s]" % (cls.__name__, cls.by, cls.value, cls.index))
             time.sleep(0.5)
Exemple #38
0
 def __wait_for_enabled(cls):
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     if elements[cls.index].is_enabled():
         return
     else:
         t = 0
         while t < 90:
             if elements[cls.index].is_enabled():
                 break
             
             log.step_normal("Element [%s]: __wait_for_enabled for 1 second, By [%s :: %s :: %s]" % (cls.__name__, cls.by, cls.value, cls.index))
             time.sleep(0.5)
Exemple #39
0
    def DragAndDropByOffset(cls, xoffset, yoffset):
        '''
        Holds down the left mouse button on the source element,
        then moves to the target offset and releases the mouse button.
        '''
        log.step_normal("Element [%s]: drag_and_drop_by_offset()" % (cls.__name__))
        cls.__wait()
        elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)

        action = webdriver.ActionChains(env.threadlocal.BROWSER)
        action.drag_and_drop_by_offset(elements[cls.index],xoffset, yoffset)
        action.perform()

        cls.__clearup()
Exemple #40
0
 def IsExist(cls):
     log.step_normal("Element [%s]: IsExist?" % (cls.__name__))
     
     time.sleep(2)
     
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     log.step_normal("Element [%s]: IsExist? Count = [%s]" % (cls.__name__, len(elements)))
     
     cls.__clearup()
     
     if len(elements) > 0:
         return True
     else:
         return False
Exemple #41
0
 def IsExist(cls):
     log.step_normal("Element [%s]: IsExist?" % (cls.__name__))
     
     time.sleep(2)
     
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     log.step_normal("Element [%s]: IsExist? Count = [%s]" % (cls.__name__, len(elements)))
     
     cls.__clearup()
     
     if len(elements) > 0:
         return True
     else:
         return False
Exemple #42
0
    def DragAndDropByOffset(cls, xoffset, yoffset):
        '''
        Holds down the left mouse button on the source element,
        then moves to the target offset and releases the mouse button.
        '''
        log.step_normal("Element [%s]: drag_and_drop_by_offset()" % (cls.__name__))
        cls.__wait()
        elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)

        action = webdriver.ActionChains(env.threadlocal.BROWSER)
        action.drag_and_drop_by_offset(elements[cls.index],xoffset, yoffset)
        action.perform()

        cls.__clearup()
Exemple #43
0
 def MouseOver(cls):
     log.step_normal("Element [%s]: MouseOver()" % (cls.__name__))
     
     time.sleep(1)
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     action = webdriver.ActionChains(env.threadlocal.BROWSER)
     action.move_to_element(elements[cls.index])
     action.perform()
     
     cls.__clearup()
     
     time.sleep(1)
Exemple #44
0
 def ClickTillObjDisappear(cls, obj):
     '''
     DESCRIPTION
         Sometimes, one click on the element doesn't work. So wait 3 seconds, then 
         click again and again until the expected object "obj" disappear.
     
     RISK
         It may do click() for many times!!!
     
     EXAMPLES
         Login.LoginButton.ClickTillObjDisappear(OverView.Button_Office())
     '''
     log.step_normal("Element [%s]: ClickTillObjDisappear()" % (cls.__name__))
     
     cls.Click()
Exemple #45
0
 def MouseOver(cls):
     log.step_normal("Element [%s]: MouseOver()" % (cls.__name__))
     
     time.sleep(1)
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     action = webdriver.ActionChains(env.threadlocal.BROWSER)
     action.move_to_element(elements[cls.index])
     action.perform()
     
     cls.__clearup()
     
     time.sleep(1)
Exemple #46
0
 def ClickTillObjDisappear(cls, obj):
     '''
     DESCRIPTION
         Sometimes, one click on the element doesn't work. So wait 3 seconds, then 
         click again and again until the expected object "obj" disappear.
     
     RISK
         It may do click() for many times!!!
     
     EXAMPLES
         Login.LoginButton.ClickTillObjDisappear(OverView.Button_Office())
     '''
     log.step_normal("Element [%s]: ClickTillObjDisappear()" % (cls.__name__))
     
     cls.Click()
Exemple #47
0
 def TypeIn(cls, value):
     '''Input value without clear existing values
     '''
     log.step_normal(u"Element [%s]: TypeIn [%s]." % (cls.__name__, value))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     elements[cls.index].send_keys(value)
     #=======================================================================
     # action = webdriver.ActionChains(env.threadlocal.BROWSER)
     # action.send_keys_to_element(elements[cls.index], value)
     # action.perform()
     #=======================================================================
     
     cls.__clearup()
Exemple #48
0
 def TypeIn(cls, value):
     '''Input value without clear existing values
     '''
     log.step_normal(u"Element [%s]: TypeIn [%s]." % (cls.__name__, value))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     elements[cls.index].send_keys(value)
     #=======================================================================
     # action = webdriver.ActionChains(env.threadlocal.BROWSER)
     # action.send_keys_to_element(elements[cls.index], value)
     # action.perform()
     #=======================================================================
     
     cls.__clearup()
Exemple #49
0
 def Set(cls, value):
     log.step_normal(u"Element [%s]: Set [%s]." % (cls.__name__, value))
     
     value = str(value)
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     
     if elements[cls.index].tag_name == "select" or elements[cls.index].tag_name == "ul":
         cls.Select(value)
     
     else:
         elements[cls.index].clear()
         action = webdriver.ActionChains(env.threadlocal.BROWSER)
         action.send_keys_to_element(elements[cls.index], value)
         action.perform()
         
         cls.__clearup()
Exemple #50
0
 def ScrollIntoView(cls):
     log.step_normal(u"Element [%s]: ScrollToView()" % cls.__name__)
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     #=======================================================================
     # print elements[cls.index].location
     # print elements[cls.index].rect
     # print elements[cls.index].location_once_scrolled_into_view
     #=======================================================================
     
     i = 0
     while not elements[cls.index].is_displayed():
         WebBrowser.ScrollTo(0, i)
         i = i + 10
         
         if i == 1000:
             log.step_normal("still not displayed. break out.")
Exemple #51
0
 def Set(cls, value):
     log.step_normal(u"Element [%s]: Set [%s]." % (cls.__name__, value))
     
     value = str(value)
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     
     if elements[cls.index].tag_name == "select" or elements[cls.index].tag_name == "ul":
         cls.Select(value)
     
     else:
         elements[cls.index].clear()
         action = webdriver.ActionChains(env.threadlocal.BROWSER)
         action.send_keys_to_element(elements[cls.index], value)
         action.perform()
         
         cls.__clearup()
Exemple #52
0
 def ScrollIntoView(cls):
     log.step_normal(u"Element [%s]: ScrollToView()" % cls.__name__)
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     #=======================================================================
     # print elements[cls.index].location
     # print elements[cls.index].rect
     # print elements[cls.index].location_once_scrolled_into_view
     #=======================================================================
     
     i = 0
     while not elements[cls.index].is_displayed():
         WebBrowser.ScrollTo(0, i)
         i = i + 10
         
         if i == 1000:
             log.step_normal("still not displayed. break out.")
Exemple #53
0
    def Select(cls, value):
        log.step_normal("Element [%s]: Select [%s]." % (cls.__name__, value))
        
        cls.__wait()
        elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
        
        is_selected = False
        
        #### select ################
        if elements[cls.index].tag_name == "select":
            options = elements[cls.index].find_elements_by_tag_name('option')

            for option in options:
#                 log.step_normal("Element [%s]: option [%s]" % (cls.__name__, option.text))
                
                if option.text == value:
                    option.click()
                    is_selected = True
                    break
        
        #### ul ################
        elif elements[cls.index].tag_name == "ul":
            lis = elements[cls.index].find_elements_by_tag_name('li')
            
            for li in lis:
#                 log.step_normal("Element [%s]: li [%s]" % (cls.__name__, li.text))
                
                if li.text == value:
                    li.click()
                    is_selected = True
                    break
        
        #### NOT Supported ################
        else:
            log.step_fail("Element [%s]: Tag [%s] NOT support [Select] method" % (cls.__name__, elements[cls.index].tag_name))
        
        
        if is_selected is False:
            log.step_fail("No item selected!")
        
        
        cls.__clearup()
Exemple #54
0
    def Select(cls, value):
        log.step_normal("Element [%s]: Select [%s]." % (cls.__name__, value))
        
        cls.__wait()
        elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
        
        is_selected = False
        
        #### select ################
        if elements[cls.index].tag_name == "select":
            options = elements[cls.index].find_elements_by_tag_name('option')

            for option in options:
#                 log.step_normal("Element [%s]: option [%s]" % (cls.__name__, option.text))
                
                if option.text == value:
                    option.click()
                    is_selected = True
                    break
        
        #### ul ################
        elif elements[cls.index].tag_name == "ul":
            lis = elements[cls.index].find_elements_by_tag_name('li')
            
            for li in lis:
#                 log.step_normal("Element [%s]: li [%s]" % (cls.__name__, li.text))
                
                if li.text == value:
                    li.click()
                    is_selected = True
                    break
        
        #### NOT Supported ################
        else:
            log.step_fail("Element [%s]: Tag [%s] NOT support [Select] method" % (cls.__name__, elements[cls.index].tag_name))
        
        
        if is_selected is False:
            log.step_fail("No item selected!")
        
        
        cls.__clearup()
Exemple #55
0
 def VerifyVisible(cls, trueORfalse):
     log.step_normal("Element [%s]: Verify Visible = [%s]." % (cls.__name__, trueORfalse))
     
     cls.__wait()
     
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     log.step_normal("Element [%s]: Count = [%s]" % (cls.__name__, len(elements)))
     
     if elements[cls.index].is_displayed():
         if trueORfalse == True:
             log.step_pass("Visible!")
         else:
             log.step_fail("Visible!")
     else:
         if trueORfalse == False:
             log.step_pass("Not Visible!")
         else:
             log.step_fail("Not Visible!")
     
     cls.__clearup()
Exemple #56
0
 def VerifyVisible(cls, trueORfalse):
     log.step_normal("Element [%s]: Verify Visible = [%s]." % (cls.__name__, trueORfalse))
     
     cls.__wait()
     
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     log.step_normal("Element [%s]: Count = [%s]" % (cls.__name__, len(elements)))
     
     if elements[cls.index].is_displayed():
         if trueORfalse == True:
             log.step_pass("Visible!")
         else:
             log.step_fail("Visible!")
     else:
         if trueORfalse == False:
             log.step_pass("Not Visible!")
         else:
             log.step_fail("Not Visible!")
     
     cls.__clearup()
Exemple #57
0
 def Click(cls):
     log.step_normal("Element [%s]: Click()" % (cls.__name__))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     
     action = webdriver.ActionChains(env.threadlocal.BROWSER)
     action.click(elements[cls.index])
     action.perform()
     
     
     #=======================================================================
     # action = webdriver.ActionChains(env.threadlocal.BROWSER)
     # action.key_up(Keys.CONTROL, elements[cls.index])
     # action.perform()
     # 
     # action.click(elements[cls.index])
     # action.perform()
     #=======================================================================
     
     cls.__clearup()
Exemple #58
0
 def VerifyInnerHTMLContains(cls, contain_content):
     log.step_normal("Element [%s]: VerifyInnerHTMLContains [%s]." % (cls.__name__, str(contain_content)))
     
     cls.__wait()
     elements = env.threadlocal.BROWSER.find_elements(cls.by, cls.value)
     inner_html = elements[cls.index].get_attribute('innerHTML')
     
     if isinstance(contain_content, list):
         for content in contain_content:
             if content in inner_html:
                 log.step_pass("Real inner_hmtl=[%s]" % inner_html)
             else:
                 log.step_fail("Real inner_hmtl=[%s]" % inner_html)
             
     else:
         if contain_content in inner_html:
             log.step_pass("Real inner_hmtl=[%s]" % inner_html)
         else:
             log.step_fail("Real inner_hmtl=[%s]" % inner_html)
     
     cls.__clearup()