selenium+python 实现163邮箱自动发送

最近在学selenium,于是做了一个自动发送邮件的程序

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from time import sleep


#调用火狐浏览器
#driver = webdriver.Firefox()
binary = FirefoxBinary('D:\\安装软件\\火狐浏览器\\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)

frist_url="http://mail.163.com/#return"
driver.get(frist_url)
sleep(2)
#切换到iframe(id = "x-URS-iframe")
driver.switch_to_frame("x-URS-iframe")
#找邮箱输入框
driver.find_element_by_class_name("j-inputtext").clear()
driver.find_element_by_class_name("j-inputtext").send_keys("我的邮箱地址")
sleep(2)
#找密码输入框
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("我的密码")
#登录
driver.find_element_by_id("dologin").click()
sleep(2)
#css定位的强大之处,参考网站  http://www.cnblogs.com/minieye/p/5803640.html
#这里有一个确认继续登录
driver.find_element_by_css_selector("[data-action=leakLogin]").click()
#在表单里面操作完毕后,无论页面是否进行跳转,必须有退出表单的操作
driver.switch_to_default_content()    #当使用火狐浏览器的时候,这句话很重要。没有直接打不开写信
sleep(3)
#点击写信
driver.find_element_by_xpath("html/body/div/nav/div/ul/li[2]/span[2]").click()
sleep(3)
#写收件人
driver.find_element_by_class_name("nui-editableAddr-ipt").send_keys("[email protected]")  
sleep(2)
#写主题
driver.find_element_by_xpath("html/body/div/div/div[2]/div/section/header/div[2]/div/div/div/input").send_keys("这是主题")
#切换到frame
frame = driver.find_element_by_class_name("APP-editor-iframe")  #若iframe有id或是name属性,可以直接切换
driver.switch_to_frame(frame)
#发送内容
driver.find_element_by_xpath('//body[@class="nui-scroll"]').send_keys("这是内容啊")
driver.switch_to_default_content()
sleep(3)
driver.find_element_by_xpath('html/body/div[2]/div/div[2]/header/div/div/div/span').click()
driver.quit()
 

有兴趣的可以加一下python爱好者的QQ群:152376662

这里有很多像你一样的伙伴,共同分享学习python的经验!


*备注:

1.元素定位很灵活,有很多种方式实现。具体要看使用哪个简便一些

2.运行过程中,偶尔会出错,可以设置元素等待

3.在调用ie浏览器的时候,总是找不到发送内容的模块。后续再完善

4.元素定位学习网站:

http://www.cnblogs.com/minieye/p/5803640.html

版本号:selenium == 3.4.0

             Firefox == 54.0.1

             python == 3.6.0

             geckodriver == v0.18.0-win32

(geckodriver版本包已经上传到有道云和本站)



你可能感兴趣的:(selenium+python 实现163邮箱自动发送)