利用selenium登陆163邮箱并发送邮件

目的:

测试selenium发送邮件

代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-


"""
利用163邮箱发邮件
"""

import time
from  selenium import webdriver 
from getpass import getpass


def loging(user, passwd, reciver, subject, content):
    driver = webdriver.Firefox()
    driver.get("https://mail.163.com/") 
    driver.implicitly_wait(30)


    # 进入登陆iframe框架中
    driver.switch_to.frame(3)   # 这个不知道咋就对了, 无语了。。。 
    driver.find_element_by_name('email').clear()
    driver.find_element_by_name('email').send_keys(user)
    driver.find_element_by_name("password").clear()
    driver.find_element_by_name("password").send_keys(passwd)
    driver.find_element_by_id("dologin").click()
    driver.switch_to.default_content()   #  退出刚刚进入的iframe框架

    # 点击写信
    time.sleep(10)
    driver.find_elements_by_css_selector("div nav div ul li")[1].click()   # 写信
    time.sleep(20)
    driver.find_element_by_class_name("nui-editableAddr-ipt").send_keys(reciver)
    driver.find_elements_by_css_selector("div section header div div div div input")[2].send_keys(subject)


    # 信的正文内容在iframe中
    driver.switch_to.frame(driver.find_element_by_class_name("APP-editor-iframe"))
    driver.find_element_by_css_selector("body").send_keys(content)
    driver.switch_to.default_content() 


    # 邮件发送
    driver.find_element_by_css_selector("div > header > div > div > div > span").click()
    
    # 关闭浏览器
    time.sleep(4)
    driver.quit()


if __name__ == "__main__":
    user = input("user: ")
    passwd = getpass()
    reciver = input("接收者: ")
    subject = input("主题: ")
    content = input("内容: ")
    
    loging(user, passwd, reciver, subject, content)
    

代码说明:

1.基本的selenium知识

2.元素定位

3. 163邮箱的密码输入内容在iframe中,需要了解iframe的含义,以及如何进入iframe和退出

猜你喜欢

转载自www.cnblogs.com/lmt921108/p/12952063.html