selenium-python问题日记
Posted liubinghong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium-python问题日记相关的知识,希望对你有一定的参考价值。
今天在学习selenium时遇到了两个问题,在这里记录一下;
使用unittest框架组织了测试用例后,拓展一下功能就成了我最想做的事情, 所以决定添加发邮件功能。
使用python自带的smtplib可以轻松的完成发邮件;
具体使用方法详见:
在编码过程发现的问题如下:
一、同时发送邮件和正文的问题
教程中没有将同时发送正文和邮件,后来通过看源码发现MIMEMultipart()类可以通过attach方法加载你所构造的参数到一个list中
在此将自己的代码发出来供大家参考,轻拍
import smtplib from email.mime.text import MIMEText #邮件正文 from email.header import Header #邮件的标题 from email.mime.multipart import MIMEMultipart #邮件附件 #创建一个发送邮件类 class send_email(): def __init__(self,sender ="[email protected]",receiver ="[email protected]", subject = ‘Python email test‘,smtpserver = ‘smtp.qiye.163.com‘,username = ‘[email protected]‘, password = ‘xxxxxxxxxxx‘): self.sender = sender self.receiver = receiver self.subject = subject self.smtpserver = smtpserver self.username = username self.password = password def send(self,Html_zhengwen_url ="",Html_fujian_url =""): ‘‘‘ Html_fujian_url:是邮件正文的本地地址‘‘‘ ‘‘‘ Html_fujian_url:是邮件附件的本地地址‘‘‘ """下面是创建Html正文,测试通过""" with open(Html_zhengwen_url,‘r‘,encoding=‘utf-8‘) as e : #HTML邮件正文 Html_msg =‘‘.join(e.readlines()) att2 = MIMEText(Html_msg,‘html‘,‘utf-8‘) #编写html类型的邮件正文 att2[‘Subject‘] = Header(self.subject, ‘utf-8‘) # #创建一个smtp实例 smtp = smtplib.SMTP() """下面是创建附件,测试通过""" #创建一个附件实例 msg2 = MIMEMultipart() msg2["Subject"] = Header(self.subject, ‘utf-8‘) #构造附件1 att1 = MIMEText(open(Html_fujian_url, ‘rb‘).read(), ‘base64‘, ‘gb2312‘) att1["Content-Type"] = ‘application/octet-stream‘ att1["Content-Disposition"] = ‘attachment; filename="text.html"‘ #这里的filename可以任意写,写什么名字,邮件中显示什么名字 ‘‘‘同时发送邮件和正文,只需要给attach方法赋值‘‘‘ msg2.attach(att1) msg2.attach(att2) try: smtp.connect(self.smtpserver) smtp.login(self.username, self.password) smtp.sendmail(self.sender, self.receiver, msg2.as_string()) #这里的msg.as_string,可以改为msg2 except Exception as e: print(e) finally: smtp.quit()
二、地址格式转换问题
由于基础不牢,导致在最简单的字符串拼接是闹出笑话。
问题和地址有关
比如:给变量A赋值一个地址
line ="11.html"
A =" C:Program Files (x86)Python36-32Scripts"+line
因为是转义字符,所以这个变量是不能直接被程序识别的,所以我想直接在字符串前加r,结果发现这种方式行不通,会报错。
A =(r" C:Program Files (x86)Python36-32Scripts")+line
后来想了想改成了双反斜杠,这样就能正常调用了。
A=" C:\Program Files (x86)Python36-32\Scripts\"+line
其实也可以这样,
A =(r" C:Program Files (x86)Python36-32Scripts\")+line
今天的记录就到这里。
谨记:牢记教训,夯实基础。
以上是关于selenium-python问题日记的主要内容,如果未能解决你的问题,请参考以下文章
selenium-python:整个代码有时候不报错正确操作,但有时候就会报错,不懂为啥?