#我的代码
from selenium import webdriver
#打开火狐浏览器 打开网址
browser=webdriver.Firefox()
browser.get('http://mail.qq.com')
#点击账号密码登录
browser.switch_to.frame('login_frame')
name=browser.find_element_by_id('u')
name.send_keys('邮箱号11111')
password=browser.find_element_by_id('p')
password.send_keys('密码11111')
loginbutton=browser.find_element_by_id('login_button')
loginbutton.click()
#编写邮件内容
#点击写信
browser.switch_to.default_content()
write=browser.find_element_by_id('composebtn_td')
write.click()
#编写邮件
browser.switch_to.frame('mainFrame')
people=browser.find_element_by_id('toAreaCtrl')
people.send_keys('对方邮箱')
title=browser.find_element_by_id('subject')
title.send_keys('selenium 测试')
content=browser.find_element_by_id('QMEditorArea')
content.send_keys('测试邮件')
#发送
send=browser.find_element_by_class_name('btn_gray btn_space')
send.click()
利用selenium自动发送测试邮件的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- lyhsdy 2018-11-03 07:51关注
https://blog.csdn.net/qiye005/article/details/80259607
""" 此脚本主要参考:https://blog.csdn.net/vae0000/article/details/73162662 https://blog.csdn.net/vae0000/article/details/73179680 https://blog.csdn.net/qq_19655383/article/details/70141624 主要修改了搜索的网页,尝试使用selenium库实现QQ邮件的自动发送 最后修改日期:2018-5-12 V1.0 实现脚本化命令行方式自动发送邮件 V1.1封装登陆,写信,发送与退出子函数,并尝试调用 最后修改作者:QiYe005 """ from selenium import webdriver import time #函数名称: LoginFun(_driver,_emailAddress,_username,_password) #函数功能: 实现根据指定QQ邮箱网页,账号,密码实现登陆QQ邮箱动作 #输入参数: _driver:webdirver模块初始化Firfox对象? # _emailAddress:访问QQ邮箱网址 # _username:邮箱用户名 # _password:相应邮箱用户名密码 #输出参数: 从新定位的driver对象 #修改信息: 2018-05-12 QiYe005 def LoginFun(_driver,_emailAddress,_username,_password): print ("尝试登陆qq邮箱网址") #登录网址 _driver.get(_emailAddress) #尝试账号密码方式登录 _driver.switch_to_frame("login_frame"); loginByUserLink = _driver.find_element_by_link_text("帐号密码登录"); loginByUserLink.click(); username = _driver.find_element_by_id("u"); password = _driver.find_element_by_id("p"); loginbutton = _driver.find_element_by_id("login_button"); print ("尝试输入账号密码并登陆") #输入账号密码 username.clear(); password.clear(); username.send_keys(_username); password.send_keys(_password); loginbutton.click(); print ("账号密码登陆按钮已点击") _driver.implicitly_wait(5) #函数名称 WriteAndSendFun(_driver,_receiverAddress,_subjectString,_contentString) #函数功能: 实现根据指定收件人定制,主题,新建邮件正文内容,实现填写及发送动作 #输入参数: _driver:webdirver模块初始化Firfox对象? # _receiverAddress:收件人邮箱 # _subjectString:主题名称 # _contentString:邮件正文内容 #输出参数: 从新定位的driver对象 #修改信息: 2018-05-12 QiYe005 def WriteAndSendFun(_driver,_receiverAddress,_subjectString,_contentString): #转自:https://blog.csdn.net/vae0000/article/details/73162662 _driver.switch_to_default_content() writeLink = _driver.find_element_by_link_text("写信"); writeLink.click(); #切换到写信框架 _driver.switch_to_frame("mainFrame"); #收信人信息 toUser = _driver.find_element_by_xpath(".//*[@id='toAreaCtrl']/div[2]/input"); toUser.send_keys(_receiverAddress) #邮件主题信息 title = _driver.find_element_by_id("subject"); title.send_keys(_subjectString); #邮件正文信息 _driver.switch_to_frame(_driver.find_element_by_tag_name("iframe")); content = _driver.find_element_by_tag_name("body"); content.send_keys(_contentString); #送信按钮触发 _driver.switch_to.parent_frame(); sendButton = _driver.find_element_by_link_text("发送"); sendButton.click(); print ("邮件内容已经填写完毕并触发“发送按钮”") _driver.implicitly_wait(5) #函数名称 LogoutFun(_driver)直接关闭浏览器退出 #函数功能: 实现退出操作,原来发送邮件后页面自动跳转,想定位到退出按钮失败,还是太年轻了 #输入参数: _driver:webdirver模块初始化Firfox对象? #输出参数: 无 #修改信息: 2018-05-12 QiYe005 def LogoutFun(_driver): #退出操作 #driver.switch_to_frame("actionFrame") #logoutLink = driver.find_element_by_link_text("退出"); #logoutLink.click() #time.sleep(3) print("最后退出邮件") #按照顺序来的,应该不用定义函数了吧 _driver.close() #定义主函数 def main(): #驱动存放位置 webDriverLoc=r'C:\bin\geckodriver.exe' driver = webdriver.Firefox(executable_path=webDriverLoc) #QQ邮箱网址,账号密码相关 emailAddress="https://mail.qq.com/" username='登陆邮箱账号' password='登陆邮箱密码' #邮件内容定义 receiverAddress="收件人邮箱" subjectString="selenup+python自动化测试" contentString="这是邮件正文,测试,测试" #调用登陆操作子函数 LoginFun(driver,emailAddress,username,password) #调用写信与发送操作子函数 WriteAndSendFun(driver,receiverAddress,subjectString,contentString) #最后调用退出操作子函数 LogoutFun(driver) #调用主函数 if __name__ == "__main__": main()
解决 无用评论 打赏 举报
悬赏问题
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?