Test d'automatisation des fonctions de l'interface utilisateur: reconditionnement de l'API Webdriver

Dans le processus de test automatisé du sélénium, il a été constaté que le positionnement de certains éléments était gênant et que certains scripts de positionnement et d'écriture d'éléments étaient particulièrement encombrants, de sorte que l'API a été reconditionnée.

  • find pour trouver un seul élément
  • find_elements trouve plusieurs éléments
  • clear_keys bouton d'effacement
  • send_keys entrée
  • click_button cliquer sur le bouton
  • script entrée script js
  • attendre Attente intelligente
  • set_window définit la taille de la fenêtre

def find (self, loc):
'' '
trouver un élément.
Utilisation:
driver.find ((By.XPATH, "// a"))
'' '
essayez:
WebDriverWait (self.driver, self.timeout) .until (lecteur lambda: drive.find_element (* loc) .is_displayed () )
renvoie self.driver.find_element (* loc)
sauf Exception, e:
print u "% s 页面 中超 时% ds 未能 找到% s 元素% s"% (self, self.timeout, loc, e)

def find_elements(self,loc):
    '''
    find elements.
    Usage:
    driver.find_elements((By.XPATH,"//a"))
    '''
    try:
        WebDriverWait(self.driver,self.timeout).until(lambda drive:drive.find_elements(*loc).is_displayed())
        return self.driver.find_element(*loc)
    except Exception,e:
        print u"%s 页面中超时%ds未能找到 %s 元素%s" %(self,self.timeout,loc,e)


def click_keys(self,loc):
    '''
    click keys
    Usage:
    driver.click_keys((By.XPATH,"//a"))
    '''
    self.find(loc).click()


def clear_keys(self,loc):
    '''
    clear keys
    Usage:
    driver.clear_keys((By.XPATH,"//a"))
    '''
    self.find(loc).clear()


def send_keys(self,loc,value):
    '''
    send keys
    Usage:
    send_keys((By.XPATH,"//a"),'a')
    '''
    sleep(3)
    self.clear_keys(loc)
    self.find(loc).send_keys(value)


def click_button(self,loc):
    '''
    click button
    Usage:
    click_button((By.XPATH,"//a"))
    '''
    sleep(3)
    self.find(loc).click()


def script(self,src):
    '''
    execute_script
    Usage:
    script(src)
    '''
    return self.driver.execute_script(src)


def wait(self, secs):
    '''
    Implicitly wait.All elements on the page.
    Usage:
    driver.wait(10)
    '''
    self.driver.implicitly_wait(secs)


def set_window(self, wide, high):
    '''
    Set browser window wide and high.
    Usage:
    driver.set_window(wide,high)
    '''
    self.driver.set_window_size(wide, high)


def right_click(self, loc):
    '''
    Right click element.
    Usage:
    driver.right_click((By.XPATH,"//a"))
    '''
    el = self.find(loc)
    ActionChains(self.driver).context_click(el).perform()


def move_to_element(self, loc):
    '''
    Mouse over the element.
    Usage:
    driver.move_to_element((By.XPATH,"//a"))
    '''
    el = self.find(loc)
    ActionChains(self.driver).move_to_element(el).perform()


def double_click(self, loc):
    '''
    Double click element.
    Usage:
    driver.double_click((By.XPATH,"//a"))
    '''
    el = self.find(loc)
    ActionChains(self.driver).double_click(el).perform()


def drag_and_drop(self, loc1, loc2):
    '''
    Drags an element a certain distance and then drops it.
    Usage:
    driver.drag_and_drop((By.XPATH,"//a"),(By.XPATH,"//b"))
    '''
    element  = self.find(loc1)
    target  = self.find(loc2)
    ActionChains(self.driver).drag_and_drop(element , target).perform()


def get_display(self, loc):
    '''
    Gets the element to display,The return result is true or false.
    Usage:
    driver.get_display(By.XPATH,"//a")
    '''
    el = self.find(loc)
    return el.is_displayed()


def isElement(self,identifyBy,c):
    '''
    Determine whether elements exist
    Usage:
    isElement(By.XPATH,"//a")
    '''
    sleep(1)
    flag=None
    try:
        if identifyBy == "id":
            #self.driver.implicitly_wait(60)
            self.driver.find_element_by_id(c)
        elif identifyBy == "xpath":
            #self.driver.implicitly_wait(60)
            self.driver.find_element_by_xpath(c)
        elif identifyBy == "class":
            self.driver.find_element_by_class_name(c)
        elif identifyBy == "link text":
            self.driver.find_element_by_link_text(c)
        elif identifyBy == "partial link text":
            self.driver.find_element_by_partial_link_text(c)
        elif identifyBy == "name":
            self.driver.find_element_by_name(c)
        elif identifyBy == "tag name":
            self.driver.find_element_by_tag_name(c)
        elif identifyBy == "css selector":
            self.driver.find_element_by_css_selector(c)
        flag = True
    except NoSuchElementException,e:
        flag = False
    finally:
        return flag


def refresh(self):
    '''
    refresh  page
    Usage:
    driver.refresh
    '''
    self.driver.implicitly_wait(10)
    self.driver.refresh()


def list_to_str(self,string):
    '''
    string to unicode
    Usage:
    list_to_str(str)
    '''
    str_symptom = str(string).replace('u\'','\'')
    return str_symptom.decode("unicode-escape")


def get_text(self,loc):
    '''
    get text
    Usage:
    get_text(By.XPATH,"//a")
    '''
    sleep(3)
    return self.find(loc).text


def get_url(self,url):
    '''
    get url
    Usage:
    get_url(url)
    '''
    sleep(3)
    return self.driver.get(url)


def get_title(self,url):
    '''
    get title
    Usage:
    get_title(url):
    '''
    self.driver.get(url)
    return self.driver.title

  • clic droit clic droit
  • move_to_element déplacer vers un élément
  • double_clic double clic
  • drag_and_drop glisser
  • get_display Récupère les attributs d'affichage des éléments
  • isElement détermine si l'élément existe
  • actualiser actualiser la page
  • list_to_str str converti en unicode
  • get_text obtenir le texte de l'élément
  • get_url commutateur url
  • get_title Obtenir le titre actuel

Je suppose que tu aimes

Origine blog.csdn.net/Love_Polaris/article/details/106750170
conseillé
Classement