二 UI自动化进销存系统之会员管理

上一篇介绍了进销存系统的登录,这块来介绍一下会员管理模块添加会员 。需要使用前面封装的公共方法,通用定位元素的封装和基于方法的测试夹具 。
在模块里面添加一个方法,定位下拉框,这样可以在添加性别时候,使用下拉框 。
#选择元素def findElementBySelect(self,loc,sex):el = self.baseFindElement(loc)se = Select(el)se.select_by_value(sex)
【二UI自动化进销存系统之会员管理】会员管理添加页面操作:在page目录下创建一个.py,继承,写一个添加会员的页面操作以及验证页面操作的方法 。这里的一个问题是操作时间框 。输入手机号码、会员昵称、小孩性别、出生日期等 。解决方式:写一个js代码,去掉时间框中的属性,执行js 。然后定位到出生日期,输入值 。

二  UI自动化进销存系统之会员管理

文章插图
js = ".('').('')"
self..(js)
el= self.(self.)
这块我输入之后发现,我没有写点击方法,但是在操作出生日期时,日期弹框会出来,所以我在定位下个元素之后,点击了一次,弹框消失了 。
因为登录进去系统后,不是直接跳转到会员管理页面,所以这里添加了一个跳转到员工管理的方法 。
二  UI自动化进销存系统之会员管理

文章插图
from selenium.webdriver.common.by import Byfrom selenium.common.exceptions import TimeoutExceptionfrom page.base_page import BasePagefrom time import sleepclass memberManagePage(BasePage):phone = (By.ID,"customerphone")memberName = (By.ID,"customername")gender =(By.ID,"childsex")birthdata=http://www.kingceram.com/post/(By.ID,"childdate")mother_score=(By.ID,"creditkids")child_score=(By.ID,"creditcloth")memberPage=(By.LINK_TEXT,"会员管理")addAction=(By.XPATH,"//button[contains(@onclick,'addCustomer')]")selectAction=(By.XPATH,"//button[contains(@onclick,'pageIndex=1')]")check_value = http://www.kingceram.com/post/(By.XPATH,"//*[@id='customerlist']/tr/td[2]")#跳转到会员管理页面def goto_memberPage(self):self.baseFindElement(self.memberPage).click()#添加页面操作def MemberManageAction(self,phoneNumer,name,sex,birthday,Mscore,Cscore):self.baseFindElement(self.phone).send_keys(phoneNumer)self.baseFindElement(self.memberName).send_keys(name)self.findElementBySelect(self.gender,sex)js = "document.getElementById('childdate').removeAttribute('readonly')"self.driver.execute_script(js)el= self.baseFindElement(self.birthdata)el.clear()sleep(2)el.send_keys(birthday)sleep(2)e2=self.baseFindElement(self.mother_score)e2.click()e2.send_keys(Mscore)self.baseFindElement(self.child_score).send_keys(Cscore)self.baseFindElement(self.addAction).click()#验证是否添加成功def check_MemberStatus(self,phoneNumer):self.baseFindElement(self.phone).send_keys(phoneNumer)self.baseFindElement(self.selectAction).click()try:element = self.baseFindElement(self.check_value)phone = element.textexcept TimeoutException:print("----------------add false------------------------")return Falseif phone == phoneNumer:print("----------------add success------------------------")return Trueelse:print("----------------add false------------------------")return False
在目录下,添加一个.py模块 。添加会员,断言是否添加成功
from common.page_util import PageUtilfrom page.login_page import LoginPagefrom page.member_manage_page import memberManagePagefrom time import sleepclass TestMemberManage(PageUtil):def test_memberPage(self):lp = LoginPage(self.driver)lp.login_action("admin","admin123","0000")sleep(2)mp = memberManagePage(self.driver)mp.goto_memberPage()sleep(2)mp.MemberManageAction("15199173288","AA","男","2022-09-10",110,120)self.assertTrue(mp.check_MemberStatus("15199173288"))