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邮箱