selenium2+python3登录163邮箱

Posted wjlv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium2+python3登录163邮箱相关的知识,希望对你有一定的参考价值。

 

首先查看页面的整个登录流程:

打开mail.163.com→点击邮箱账号登录→账号输入框→密码输入框→登录

一、单一流程实现:打开网页,找到邮箱账号登录,输入账号密码,登录

# 导入webdriver驱动
from selenium import webdriver
from time import ctime
# 新建火狐浏览器驱动
dr = webdriver.Firefox()
dr.get(https://mail.163.com)
# 点击邮箱账号登录,使用xpath定位
dr.find_element_by_xpath(//*[@id="lbNormal"]).click()
print(ctime(), 已点击邮箱账号登录)
# 接下来实现账号密码登录,同样需要定位,但是发现每次账号密码都找不到Can‘t find element从网上查找资料才知道这块是作了表单设计,需要切换到frame定位。
# 同样直接在浏览器查看元素也能发现账号密码输入框其实在frame内

技术图片

# 那就先定位frame,然后查看frame的属性发现它的id是个小数,所以应该是作了随机值可变的,不好定位。但是可以发现frame的父元素div的属性是固定的,通过div找frame

dl_frame = dr.find_element_by_xpath(//*[@id="loginDiv"]/iframe)
# 切换到frame
dr.switch_to.frame(dl_frame)

#下面开始输入账号和密码

dr.find_element_by_name(email).clear()
dr.find_element_by_name(email).send_keys(‘**zhanghao**‘)
dr.find_element_by_name(password).clear()
dr.find_element_by_name(password).send_keys(‘***mima***‘)

# 然后点击登录(登录按钮也是在这个frame下)

技术图片

 

dr.find_element_by_css_selector(#dologin).click()

# 登陆后切换表单到主页面

dr.switch_to.default_content()

 

# 登陆后打印页面title

print(‘当前页面标题:‘dr.title)

 

执行报错:

技术图片

才发现div下面的frame是iframe,更改后执行:

技术图片

 

到目前,单线登录完成。


 


 

以上是关于selenium2+python3登录163邮箱的主要内容,如果未能解决你的问题,请参考以下文章

Page Object实例 - Java + Selenium 登录163邮箱

Outlook代收发其他邮箱(gmail, qqmail, aliyun, 163)

Python3实现126邮箱163邮箱SMTP发送邮件

vip.163邮箱登录指南,163vip邮箱体验分享

c# 登陆邮箱??

登陆163邮箱总显示访问URL:reg.163.com被管理员阻止怎么办?