Python 编程快速上手 让繁琐工作自动化-第十一章实践项目 11.11.1命令行邮件程序
admin
2023-07-12 02:23:03
0

11.11.1 命令行邮件程序

  1. 编写一个程序,通过命令行接受电子邮件地址和文本字符串。然后利用selenium
    登录到你的邮件账号,将该字符串作为邮件,发送到提供的地址(你也许希望为这
    个程序建立一个独立的邮件账号)。
    这是为程序添加通知功能的一种好方法。你也可以编写类似的程序,从
    Facebook 或Twitter 账号发送消息。
    这个项目弄了好几天,头都快炸了,终于弄好了
    代码如下:
    #!/usr/bin/env python#encoding:utf-8
    '''
    @author:Kevin
    br/>#encoding:utf-8
    '''
    @author:Kevin
    br/>@file:eMail.py
    br/>@desc:
    '''
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time

url='https://www.yeah.net'

browser = webdriver.Chrome() #打开浏览器

browser.get(url)

time.sleep(2)
#切换iframe
#browser.switch_to.frame('x-URS-iframe') #报错
#上面那条语句中,iframe的切换是默认支持id和name的方法的,
#当然实际情况中会遇到没有id属性和name属性为空的情况,
#这时候就需要先定位iframe
iframe=browser.find_element_by_tag_name("iframe")
browser.switch_to.frame(iframe)

#查找email账号填写框
emailElem = browser.find_element_by_name('email')
emailElem.send_keys('not-a-real-email-address') # 调用send_keys()方法填写表单

#查找密码填写框
passwordElem = browser.find_element_by_name('password')
passwordElem.send_keys('****')

#查找登录按钮
loginElem = browser.find_element_by_id('dologin')
loginElem.click() #模拟鼠标点击登录
time.sleep(2) #
browser.switch_to.default_content()

#查找写信按钮
writeElem=browser.find_element_by_id('_mail_component_23_23')
writeElem.click() #模拟鼠标点击登录
time.sleep(2)

#填写收件人地址
recipientElem=browser.find_element_by_class_name('nui-editableAddr-ipt')
recipientElem.send_keys('xxxxxxx@xxx.com')

#填写邮件主题
subjectElem=browser.find_element_by_xpath("//*[@class='nui-ipt-input'and @type = 'text' and @tabindex = '1']")
subjectElem.send_keys('Hello!')

#填写邮件内容mainbodyFrame=browser.find_element_by_xpath("//iframe[contains(@class,'APP-editor-iframe')]")
br/>mainbodyFrame=browser.find_element_by_xpath("//iframe[contains(@class,'APP-editor-iframe')]")
mainbodyElem=browser.find_element_by_class_name('nui-scroll')
mainbodyElem.send_keys('Hello!\nWorld!')
browser.switch_to.default_content()

#点击发送按钮
sendElem=browser.find_elements_by_class_name("nui-btn-text")[2]
sendElem.click()
time.sleep(5)
browser.quit()

相关内容

热门资讯

OpenAI,正式组建机器人事... 人工智能(AI)领域巨头OpenAI发布公告,宣布大力扩张内部机器人事业部,正式全面切入硬件赛道,实...
星火空间完成近亿元Pre-A轮... 据星火空间消息,6月1日,合肥星火空间科技有限公司完成近亿元Pre-A轮融资。本轮融资由云泽资本和轨...
刚刚,宇树IPO闪电过会!王兴... 智东西 作者 | 许丽思 编辑 | 漠影 智东西6月1日报道,刚刚,宇树通过上交所上市委会议审议。 ...
京东工业发起百川计划 携手上游... 京东工业大模型生态发布会6月1日在北京举行,京东工业携手合作伙伴正式开启“百川计划”,从数据、模型、...
强脑科技预计今年机械手销量大涨... IT之家 6 月 2 日消息,据彭博社 2 日(今天)报道,强脑科技预计,随着中国人形机器人产业快速...
一图看懂差距!iPhone 1... 快科技6月2日消息,iPhone 18 Pro不同版本电池容量不同的相关话题冲上社交平台热搜榜,引发...
iPhone 18 Pro 或... 据科技狐,近日,知名爆料人 Sonny Dickson 分享了 iPhone 18 Pro 全套机模...
武契奇:不排除卸任总统后担任总... 塞尔维亚总统武契奇近期密集释放政坛人事与大选相关信号,明确无意在 2027 年总统任期届满后谋求连任...
6月新机夯到拉盘点,告诉你哪台... 现在这形势,手机升价是不可能躲得过的了,而且涨价期至少持续两年。那既然内存涨价躲不过,就只能选升级大...
伊朗公开已故最高领袖哈梅内伊安... 新华社德黑兰6月2日电 据伊朗伊斯兰共和国通讯社2日报道,根据伊朗已故最高领袖阿里·哈梅内伊生前遗愿...