介绍
在上一篇文章链接🔗里我们讲了如何设计通用的UI自动化测试框架,这篇文章我会举几个例子,在UI自动化框架里,如何对常用公共方法封装,减少代码的冗余度。
正文
所有Web UI自动化都需要打开浏览器、网页和等待获取元素的定位等,我们其实可以把这部分基础功能做一个封装,如下:
from selenium import webdriver
from selenium.webdriver. support.ui import WebDriverWait
import time
class Base_ Src0:
def init_(self, ):
pass
def get_ele_ times(self, driver, times, func) :
return WebDriverWait (driver, times).until (func)
def open_browser(self):
#打开浏览器
driver = webdriver. Chrome ()
driver.maximize_ window()
return driver
def open_url(self; driver=None, ur1=None) :
#打开测试网址
driver. get(url)
def isElementExist(self, driver, element):
#判断元素是否存在,若存在,返回True,不存在返回False,并关闭浏览器
flag =True
try:
driver. find_element_ by_ id(element)
print("要定位的元素存在: ",element)
return flag
except:
flag=False
print("要定位的元素不存在: ",element)
driver. quit()
return flag
其次,很多网站有做登陆功能,先要进行登陆,获取了登陆态后才能进行其他页面的操作,所有我们也可以对登陆功能进行封装,如下例子:
def login(self, driver, url=None, login_acc=None, login_pwd=None):
self. open_url (driver, url)
time.sleep(1)
if self.isElementExist (driver,_title' ):
print("首次登陆")
#若是首次登陆,需先点击“确定”弹窗,若是非首次登录,则直接去输入帐号密码登录
driver. find element _by_ xpath( //*[@id=“XXXXX" ]/span' ).click()
login_acc_ele = driver.find_element_by_xpath( /[i/=”umame”" )
login_pwd_ele = driver.find_element_by_xpath(" //*L@id-"test"")
#print("输入帐号“)
login_acc_ele.clear()
login_acc_ele.send_keys(login_acc)
login_pwd_ele.clear()
#print("输入密码”)
login_pwd_ele.send_keys(login.pwd)
driver. find_element_by_xpath(' //* [@i d=" submit"]/span).click()
#判断是否登录成功
网友评论