老师您好帮忙看一下这是我的代码,为什么我运行的时候,会有打开两个driver,问题在哪里,如何修改?

来源:2-22 如何将整个注册流程脚本进行模块化实战讲解

慕前端5059034

2020-09-27

#coding = utf-8
import sys
sys.path.append('C:/Users/冯宝东/Desktop')
from selenium import webdriver
import random
import time
from PIL import Image
from python.util.find_element import FindElemet
from ShowapiRequest import ShowapiRequest
driver = webdriver.Chrome()
class RegisterFunction():
    def __init__(self,url):
        self.driver = self.get_driver(url)
    #获取driver并且打开url
    def get_driver(self,url):
        driver = webdriver.Chrome()
        driver.get(url)
        driver.maximize_window()
        return driver
    #输入用户信息
    def send_user_info(self,key,data):
        self.get_user_element(key).send_keys(data)
    #获取元素
    def get_user_element(self,key):
        find_elemnt = FindElemet(self.driver)
        user_element = find_elemnt.get_element(key)
        return user_element
    def get_range_user(self):
        user = ''.join(random.sample('1234567890abcdefg',8))
        return user
    #获取图片并裁剪
    def get_code_image(self,file_name):
        self.driver.save_screenshot(file_name)
        code_element = self.get_user_element('code_imge')
        left = code_element.location['x']
        top = code_element.location['y']
        right = code_element.size['width'] + left
        height = code_element.size['height'] + top
        im = Image.open(file_name)
        out = im.resize((1535,711),Image.BILINEAR)
        out.save(file_name)
        img = out.crop((left,top,right,height))
        img.save(file_name)
        time.sleep(3)
    #获取验证码
    def code_online(self,file_name):
        self.get_code_image(file_name)
        r = ShowapiRequest("http://route.showapi.com/184-4","162840","2564ca89edd740799afdb2acff0469f3" )
        r.addFilePara("image", "C:/feng/imooc2.png")
        r.addBodyPara("typeId", "35")
        r.addBodyPara("convert_to_jpg", "0")
        r.addBodyPara("needMorePrecise", "0")
        res = r.post()
        text = res.json()['showapi_res_body']['Result']
        return text

    def main(self):
        user_email = self.get_range_user()+'@163.com'
        user_name_info = self.get_range_user()
        #test = self.code_online('C:/feng.imocc3.png')
        self.send_user_info('useremail',user_email)
        self.send_user_info('username',user_name_info)
        self.send_user_info('password','66666')
        self.send_user_info('captcha','1111')
        self.get_user_element('button').click()
        code_error = self.get_user_element('code_text_error')
        if code_error == None:
            print('注册成功')
        else:
            self.driver.save_screenshot('C:/feng.imocc5.png')
        time.sleep(5)
        self.driver.close()

if __name__ == "__main__":
    register_function=RegisterFunction('http://www.5itest.cn/register')
    register_function.main()


写回答

1回答

Mushishi

2020-09-27

1、目前看代码没问题 除非findelement有问题。

2、你可以

        driver = webdriver.Chrome()在这里把chrome的路径添加进去,看一下是否有问题

3、

sys.path.append('C:/Users/冯宝东/Desktop')名字不要这样用。中文

4、

from python.util.find_element import FindElemet 你这里的python。额。不要这样命名啊。容易出问题的。

0
2
Mushishi
回复
慕前端5059034
NB CLASS
2020-09-28
共2条回复

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

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

1890 学习 · 1093 问题

查看课程