WEB端UI测试的Python方法封装

#coding:utf-8

import os
import time
from selenium import webdriver
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.ui import Select


def forward(self):
    self.driver.forward()


def back(self):
    self.driver.back()


def closeBrowser(self):
    self.driver.quit()


def get_img(self):
    file_path = os.path.dirname(os.path.abspath('.')) + '/image/'
    rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
    screen_name = file_path + rq + '.png'
    try:
        self.driver.get_screenshot_as_file(screen_name)
    except NameError as e:
        self.get_windows_img()


def switch_handel(self):
    all_handles = self.driver.window_handles
    for handle in all_handles:
        self.driver.switch_to.window(handle)

def openBrowser(self,type,url):
    if type == 'Firefox':
        self.driver = webdriver.Firefox()
        self.driver.maximize_window()
        self.driver.implicitly_wait(20)
        self.driver.get(url)
    elif type == 'Chrome':
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.implicitly_wait(20)
        self.driver.get(url)
    elif type == 'IE':
        self.driver = webdriver.Ie()
        self.driver.maximize_window()
        self.driver.implicitly_wait(20)
        self.driver.get(url)
    elif self.browser_type == '':
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.implicitly_wait(20)
        self.driver.get(url)

def input(self, type, loc, value):
    if type == "xpath":
        self.driver.find_element_by_xpath(loc).send_keys(value)
    elif type == "class_name":
        self.driver.find_element_by_class_name(loc).send_keys(value)
    elif type == "id":
        self.driver.find_element_by_id(loc).send_keys(value)
    elif type == "name":
        self.driver.find_element_by_name(loc).send_keys(value)
    elif type == "link_text":
        self.driver.find_element_by_link_text(loc).send_keys(value)
    elif type == "partial_link_text":
        self.driver.find_element_by_partial_link_text(loc).send_keys(value)

def click(self, type, loc):
    if type == "xpath":
        self.driver.find_element_by_xpath(loc).click()
    elif type == "class_name":
        self.driver.find_element_by_class_name(loc).click()
    elif type == "id":
        self.driver.find_element_by_id(loc).click()
    elif type == "name":
        self.driver.find_element_by_name(loc).click()
    elif type == "link_text":
        self.driver.find_element_by_link_text(loc).click()
    elif type == "partial_link_text":
        self.driver.find_element_by_partial_link_text(loc).click()

def clear(self, type, loc):
    if type == "xpath":
        self.driver.find_element_by_xpath(loc).clear()
    elif type == "id":
        self.driver.find_element_by_id(loc).clear()
    elif type == "name":
        self.driver.find_element_by_name(loc).clear()
    elif type == "link_text":
        self.driver.find_element_by_link_text(loc).clear()
    elif type == "partial_link_text":
        self.driver.find_element_by_partial_link_text(loc).clear()

def get_element(self, type, loc):
    if type == "xpath":
        self.driver.find_element_by_xpath(loc)
    elif type == "id":
        self.driver.find_element_by_id(loc)
    elif type == "name":
        self.driver.find_element_by_name(loc)
    elif type == "link_text":
        self.driver.find_element_by_link_text(loc)
    elif type == "partial_link_text":
        self.driver.find_element_by_partial_link_text(loc)
    elif type == "classname":
        self.driver.find_element_by_class_name(loc)
    elif type == "css":
        self.driver.find_element_by_css_selector(loc)

def get_text(self, type, loc):
    if type == "xpath":
        text = self.driver.find_element_by_xpath(loc).text
        return text
    elif type == "name":
        text = self.driver.find_element_by_name(loc).text
        return text
    elif type == "link_text":
        text = self.driver.find_element_by_link_text(loc).text
        return text
    elif type == "class_name":
        text = self.driver.find_element_by_class_name(loc).text
        return text
    elif type == "id":
        text = self.driver.find_element_by_id(loc).text
        return text

def move_to_elemen_and_click(self, type, loc):
    if type == "xpath":
        xm = self.driver.find_element_by_xpath(loc)
        webdriver.ActionChains(self.driver).click(xm).perform()
    elif type == "id":
        xm = self.driver.find_element_by_id(loc)
        webdriver.ActionChains(self.driver).click(xm).perform()
    elif type == "name":
        xm = self.driver.find_element_by_name(loc)
        webdriver.ActionChains(self.driver).click(xm).perform()
    elif type == "link_text":
        xm = self.driver.find_element_by_link_text(loc)
        webdriver.ActionChains(self.driver).click(xm).perform()

def switch_in_iframe(self,iframe):
    self.driver.switch_to_frame(iframe)


def switch_out_iframe(self):
    self.driver.switch_to_default_content()

def element_is_visibility(self,timeout,loc):
    result = WebDriverWait(self,timeout).until(expected_conditions.visibility_of_element_located(loc))
    return result

def page_slide(self,value):
    js = "var q=document.documentElement.scrollTop=" + bytes(value) + ""
    self.driver.execute_script(js)

def kill_driver(self, driver_name):
    if driver_name[-4:].lower() != ".exe":
        driver_name += ".exe"
    os.system("taskkill /f /im " + driver_name)

def select_by_value(self,type,loc,value):
    if type == 'xpath':
        element = self.driver.find_element_by_xpath(loc)
        Select(element).select_by_value(value)
    elif type == 'id':
        element = self.driver.find_element_by_id(loc)
        Select(element).select_by_value(value)
    elif type == 'name':
        element = self.driver.find_element_by_name(loc)
        Select(element).select_by_value(value)
    elif type == 'css':
        element = self.driver.find_element_by_css_selector(loc)
        Select(element).select_by_value(value)

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值