老师您好帮忙看一下这是我的代码,为什么我运行的时候,会有打开两个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回答
-
1、目前看代码没问题 除非findelement有问题。
2、你可以
driver = webdriver.Chrome()在这里把chrome的路径添加进去,看一下是否有问题
3、
sys.path.append('C:/Users/冯宝东/Desktop')名字不要这样用。中文
4、
from python.util.find_element import FindElemet 你这里的python。额。不要这样命名啊。容易出问题的。
022020-09-28
相似问题