“每次输入元素前之前的输入未清空”如何解决

来源: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进程不存在")



************************************************************************************************************

运行代码效果:

http://img.mukewang.com/szimg/60f61d6909d89ff012220989.jpg

http://img.mukewang.com/szimg/60f61d8409e0c9cb09980552.jpg

写回答

1回答

Mushishi

2021-07-20

我没太明白你想表达的意思。

1、清空元素 你是针对元素的,不是针对文本信息。你元素只要清空了,直接这个元素上进行输入(如果无法清空,可以通过键盘模拟进行清楚)

2、你后面说的结果是什么?是无法清楚 还是清楚报错 

你上面错误

//img.mukewang.com/szimg/60f6841d09e3d86407500362.jpg你看你这个res里面的结果是什么。或者去这里面打印。

0
0

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1883 学习 · 1093 问题

查看课程