“每次输入元素前之前的输入未清空”如何解决
来源:3-7 po模型之流程梳理完成注册页面常见case调试

cloudonthesun
2021-07-20
老师好,我有一个问题
视频中您说
“
对每一个元素进行输入前都执行清空操作,但是每一次都清空的话需要重新定位元素,因为清空是按照元素信息进行清空的,这样就会有问题??
后续我们结合unittest解决这个问题
”
没太明白这句话是什么意思,我在handle层的操作元素函数里每次输入前都清空了一下,实现的效果就是我们想要的每次输入前都不再保留之前的输入,但是您在视频中说的这样做会有问题,没明白哪里会有问题?
恳请老师指点
我的handle层更改的代码如下:
*************************************************************************************************************
def __init__(self,driver):
self.registerPage = RegisterPage(driver)
'''向输入框输入信息'''
def sendEmail(self,email):
self.registerPage.findEmailElement().clear()
self.registerPage.findEmailElement().send_keys(email)
def sendUsername(self,username):
self.registerPage.findUsernameElement().clear()
self.registerPage.findUsernameElement().send_keys(username)
def sendPassword(self,password):
self.registerPage.findPasswordElement().clear()
self.registerPage.findPasswordElement().send_keys(password)
def sendCode(self,code):
self.registerPage.findCodeElement().clear()
self.registerPage.findCodeElement().send_keys(code)
*************************************************************************************************************
case层代码如下:
************************************************************************************************************
#coding=utf-8
import os,sys
sys.path.append(os.getcwd())
from chapter3.business.register_business import RegisterBusiness
from selenium import webdriver
import time
class RegisterCase:
def __init__(self):
#1.创建Chrome的driver
option = webdriver.ChromeOptions()
# 防止打印一些无用的日志
option.add_experimental_option("excludeSwitches", ['enable-automation', 'enable-logging'])
driver = webdriver.Chrome(options=option)
driver.get("http://www.5itest.cn/register")
self.registerBusiness = RegisterBusiness(driver)
def testRegisterEmailError(self):
email = "111"
#调用business层方法
res = self.registerBusiness.registerWithEmailError(email,"fanyu","1234567","123456")
if res:
print("注册成功,testRegisterEmailError case执行失败")
else:
print("注册失败,testRegisterEmailError case执行成功")
#assert断言判断结果
def testRegisterUsernameError(self):
username = "1,"
#调用business层方法
res = self.registerBusiness.registerWithUsernameError("490718876@qq.com",username,"12345678","123456")
if res:
print("注册成功,testUsernameError case执行失败")
else:
print("注册失败,testUsernameError case执行成功")
#assert断言判断结果
def testRegisterPasswordError(self):
password = "11"
#调用business层方法
res = self.registerBusiness.registerWithPasswordError("490718876@qq.com","fanyu",password,"123456")
if res:
print("注册成功,testPasswordError case执行失败")
else:
print("注册失败,testPasswordError case执行成功")
#assert断言判断结果
def testRegisterCodeError(self):
code = "111111"
#调用business层方法
res = self.registerBusiness.registerWithCodeError("490718876@qq.com","fanyu","1234567",code)
if res:
print("注册成功,testCodeError case执行失败")
else:
print("注册失败,testCodeError case执行成功")
def testRegisterSuccess(self):
res = self.registerBusiness.registerSuccess("490718876@qq.com","fanyu","123456","xz47g")
if res:
print("注册成功,testRegisterSuccess case执行成功")
else:
print("注册失败,testRegisterSuccess case执行失败")
def main(self):
self.testRegisterEmailError()
time.sleep(4)
self.testRegisterUsernameError()
time.sleep(4)
self.testRegisterPasswordError()
time.sleep(4)
self.testRegisterCodeError()
#由于没有接入解析验证码的函数,所以无法验证正向流程
if __name__ == "__main__":
try:
registerCase = RegisterCase()
registerCase.main()
finally:#无论是否发生异常都会执行
try:
os.system('taskkill /im chromedriver.exe /F')
except:
print("chrome driver进程不存在")
************************************************************************************************************
运行代码效果:
1回答
-
Mushishi
2021-07-20
我没太明白你想表达的意思。
1、清空元素 你是针对元素的,不是针对文本信息。你元素只要清空了,直接这个元素上进行输入(如果无法清空,可以通过键盘模拟进行清楚)
2、你后面说的结果是什么?是无法清楚 还是清楚报错
你上面错误
你看你这个res里面的结果是什么。或者去这里面打印。
00
相似问题
回答 1
回答 1