使用selenium自动登录126/163邮箱并自动发送邮件

  • 我使用的是Python3.8.10+selenium
  • 贴上我写的源代码

我使用的是Python3.8.10+selenium

最近学习自动化,拿了126邮箱来练手,发现有定位登录界面的输入框和收件人的输入框的时候失败了,然后研究了好久才搞好,总结以下几点:
1、登录界面定位不到是因为被iframe包围了,所以需要先定位到iframe元素,然后在定位输入框


fr = dr.switch_to.frame(0) #定位到iframe
dr.find_element_by_name(‘email’).clear() #清除输入框内容
dr.find_element_by_class_name(‘j-nameforslide’).send_keys(‘用户账号’) #用户名
dr.find_element_by_name(‘email’).clear() #清除输入框内容
dr.find_element_by_name(‘password’).send_keys(‘密码’)#密码
dr.find_element_by_xpath(’//*[@id=“dologin”]’).click() #点击登录
2、收件人输入框定位失败的原因是元素还没加载出来,可以
加一个隐式等待

dr.implicitly_wait(10)
3、定位主题输入框的时候,它的id值是动态的,所以使用部分属性值匹配的方式定位
.使用部分属性值匹配(最强大的方法)
By.xpath("//input[starts-with(@id,‘subject’)
By.xpath("//input[ends-with(@id,‘id’)
By.xpath("//input[contains(@id,’
’)]")
4、定位写信输入框的时候发现也是被iframe包围了,所以也需要先定位iframe再定位写信输入框
iframe = dr.find_element_by_class_name(‘APP-editor-iframe’)
#进入iframe
dr.switch_to.frame(iframe)
#定位文本输入框并输入
dr.find_element_by_xpath(’/html/body[@class = “nui-scroll” and @spellcheck = “false”]/p’).send_keys(“我终于成功啦啦啦啦啦”)
5、因为发送按钮是在iframe外,所以要先退出iframe
dr.switch_to.default_content()

贴上我写的源代码

from selenium import webdriver
import  timedr = webdriver.Chrome()
dr.get("https://www.126.com/")
dr.maximize_window()
time.sleep(2)#登录126邮箱
fr = dr.switch_to.frame(0) #定位到iframe
dr.find_element_by_name('email').clear() #清除输入框内容
dr.find_element_by_class_name('j-nameforslide').send_keys('用户名') #用户名
dr.find_element_by_name('email').clear() #清除输入框内容
dr.find_element_by_name('password').send_keys('密码')#密码
dr.find_element_by_xpath('//*[@id="dologin"]').click() #点击登录time.sleep(3)
#点击写信按钮
dr.find_element_by_xpath('//*[@id="_mail_component_149_149"]/span[2]').click()
#time.sleep(10)
#隐式等待
dr.implicitly_wait(5)
time.sleep(3)
#定位收件人输入框输入
dr.find_element_by_class_name('nui-editableAddr-ipt').send_keys('111@163.com')
#定位主题输入框输入
dr.find_element_by_xpath('//input[contains(@id,"_subjectInput")]').send_keys('测试发送邮件信息')
#文本输入框在iframe中,先定位iframe
iframe = dr.find_element_by_class_name('APP-editor-iframe')
#进入iframe
dr.switch_to.frame(iframe)
#定位文本输入框并输入
dr.find_element_by_xpath('/html/body[@class = "nui-scroll" and @spellcheck = "false"]/p').send_keys("我终于成功啦啦啦啦啦")
#发送按钮在iframe外,先退出iframe
dr.switch_to.default_content()
#定位发送按钮并点击
dr.find_element_by_xpath('//div[@class="nui-toolbar-item"]/div/span[2]').click()

使用selenium自动登录126/163邮箱并自动发送邮件相关推荐

  1. selenium基于python定位163邮箱实现自动登录

    1.采用邮箱账号登录: 获取此元素的id,定位元素deiver.find_element_by_id('lbNormal').click() 2.获取账号输入框的元素属性定位元素: 由于登录框在内嵌i ...

  2. selenium自动化登录网易163邮箱全部代码(网易的邮箱好像都能用)

    **注意点:**: 1.延时:防止长时间未加载完成,程序运行 2.iframe框架切换,不然会定位不到元素 import tracebackfrom selenium import webdriver ...

  3. Python + Selenium实现163邮箱的自动登录和发送邮件

    运用Python和Selenium实现163邮箱的自动登录和发送邮件 初接触selenium,最近研究了一下用python和Selenium实现163邮箱的自动登录和发送邮件的实现过程,中间出现了各种 ...

  4. python 自动登录方法_Python自动登录126邮箱的方法

    本文实例讲述了Python自动登录126邮箱的方法.分享给大家供大家参考.具体实现方法如下: import sys, urllib2, urllib,cookielib import re cooki ...

  5. 查看计算机有几个用户登录,如何在电脑中登录一个163邮箱账号时查看多个邮箱的邮件...

    ‍ 很多用户不只拥有一个163电子邮箱账号,如果要查看这些邮箱中的邮件,总是要先登录一个邮箱,查看完后进行注销再登录另一个进行查看,这样的操作很麻烦.其实在163邮箱中有一个关联邮箱的功能,让我们可以 ...

  6. gitlab使用163邮箱向用户发送邮件

    摘要: 前端时间在CentOS7上安装gitlab闲弃了一段时间,今天在添加账号的时候,邮箱一直不能收到注册通知.这里转载记录一下163邮箱的设置 gitlab官方SMTP设置SMTP setting ...

  7. python自动注册邮箱_python2+selenium+mail,自动登录126邮箱

    在进行登录126邮箱时有几个坑,要完美避过可以看一下下文,直接上代码: #encoding = utf-8 from selenium import webdriver import unittest ...

  8. python模拟登录网易163邮箱并发送SOS邮件

    基本环境配置 1. Selenium - 建议使用低版本的Python-Selenium库,因为高版本在Chrome中不支持. pip3 install selenium==2.48.0 2. chr ...

  9. python3 selenium 自动化 登录搜狐邮箱之 函数的二次封装和模块的调用及函数的调用

    先建一个 sohuEmailPublic.py 文件,对函数进行封装,让它作为公共的模块开使用 代码如下: from selenium import webdriver from time impor ...

  10. python登录网易163邮箱,爬取邮件

    1 from common importMyRequests,LoggerUntil,handle_exception2 3 myRequests.update_headers({ 'Accept': ...

最新文章

  1. lua用于ios开发
  2. Linux服务器信息检测Shell脚本
  3. c语言节点有指针域数据域,学习心得:链表的操作(C语言实现)
  4. 你绝对能懂的“机器学习”(一)
  5. 计算矩阵的逆和行列式的值(高斯消元+LU分解)
  6. Power Platform之Power Automate新增RPA功能
  7. 【AI视野·今日NLP 自然语言处理论文速览 第十五期】Fri, 25 Jun 2021
  8. Asp.net夜话之一:asp.net介绍
  9. 有道翻译-python
  10. 对Spring的一些理解
  11. poj1113 凸包
  12. 登陆模块防止恶意用户SQL注入攻击
  13. linux磁盘健康监控,MegaCli监控RAID磁盘健康信息
  14. app逆向 安卓开发环境搭建
  15. Java练习题【新】
  16. WPS制作的电子签名有法律效力吗
  17. 没中奖的花花卡不要扔,还有用!
  18. 如何让你开发的产品在同质化洪流中脱颖而出?
  19. Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
  20. 幅相曲线渐近线_若最小相位系统的低频段幅频特性的渐近线是一条斜率为20dB/dec的直线,则该系统( )。_学小易找答案...

热门文章

  1. 启动Elasticsearch时:[failed to obtain node locks]
  2. 大一Web课程设计:企业网站——HTML+CSS+JavaScript电子购物商城(37页面)
  3. 人类的终极目标是什么?
  4. mysql文件夹搬家_Mysql 静态文件搬家 注意事项
  5. 交通银行信用卡积分兑换礼品方法(三种)
  6. 如何使用adb卸载手机系统内部软件
  7. Matlab-16QAM调制与解调 16-QAM星座点图 16-QAM在AWGN信道下的误码率和误比特率性能,仿真值与理论值曲线对比图
  8. 如何将 png/jpg 图片转换为 eps
  9. 2019谷歌开发者大会
  10. python制作qq机器人_使用python打造一个自己的QQ机器人 【基础篇】