用Python+Selenium来测试登录自动登录163邮箱

用Python+Selenium来测试登录自动登录163邮箱

  • 1 准备条件
  • 2 程序说明
  • 3 代码

1 准备条件

① windows系统(也许你是Linux,Mac,自行选择)
②安装了Anaconda(或者python3)
③安装了selenium (不知道可以百度一下)
④安装了ChromeDriver驱动 (不知道可以百度一下)
⑤使用pycharm开发工具(可以使用其他开发工具)

2 程序说明

笔者只是自己学习研究相关内容,程序写的很小小小小白。

3 代码

# -*-coding:utf-8-*-
#@Author: 凝聚才华
#@Time: 2020031109'''
说明:
1. 本测试只供学习selenium交流,请勿用在任何商用用途。
2. 本测试实验,在20200311日时,测试运行时是可以正常工作的,如果你运行失败,可能是由于163的登录界面有所改动。
'''

from selenium import webdriver
import time
driver = webdriver.Chrome()  #使用Chrome浏览器,
driver.get('https://mail.163.com/') #测试自动登录的网址,以163邮箱为本实验用例

#登录
driver.find_element_by_link_text('密码登录').click()  #打开地址,是扫码登录界面,需要点击切换到密码登录页面
time.sleep(2) #让它睡2秒,防止网络不好,跳转到密码登录页面太慢,定位不到元素,如果网络不好,建议设置长一点,单位是:秒
'''可用的定位frame的方法'''
driver.switch_to.frame(0)  # 1.用frame的index来定位,定位第一个frame (index 下标从0开始)。
# driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))  # 2. 登录界面只看到一个iframe,用WebElement对象来定位。即用find_element系列方法所取得的对象,我们可以用tag_name、xpath等来定位frame对象
'''
本次测试例子中不可用的方法如下
如果是非动态的iframe时,有id,并且唯一,直接写id,但是很不幸,本例子中的id是时刻变化的,
举例本次打开,查看到的id是:x-URS-iframe1583891965828.27,下一次的id是:x-URS-iframe1583891147966.671,所以不适用
'''
# driver.switch_to.frame("x-URS-iframe1583891965828.27")  # 3.用id来定位,由于是动态iframe所以本方法不适用

# driver.switch_to.frame("name")  # 4.用name来定位,此方法也不可行,本例子中没有name属性可以让我们定位。
driver.find_element_by_id('account-box').click()  #点击进入账户输入框里面
driver.find_element_by_name('email').clear() #清理一下账户输入框中的内容,防止有垃圾数据影响正常登录
driver.find_element_by_name('email').send_keys('此处输入自己的账户') #邮箱账户,因为 后面已经自带@163.com,所以只输入前面部分
driver.find_element_by_name('password').clear() #清理一下密码输入框中的内容,防止有垃圾数据影响正常登录
driver.find_element_by_name('password').send_keys('此处输入自己的密码')  #输入密码信息
driver.find_element_by_id('dologin').click() #点击登录按钮,进行登录

# 收信,写信,删除邮件等操作
'''
未编写
'''

#退出
time.sleep(5) #上面的登录成功后,有个跳转的过程,需要睡眠5秒,防止跳转未完成,直接进行退出导致找不到元素报错。
# driver.find_element_by_xpath('/html/body/header/div[1]/ul[1]/li[14]/a').click()  #路径通过,浏览器里面的copy->xpath直接粘过来就好,退出方法1
driver.find_element_by_link_text('退出').click()  #点击退出,进行退出邮箱操作,退出方法2
time.sleep(5)  #再睡5秒,让我们看看退后的界面
driver.quit() #关闭Chrome浏览器

你可能感兴趣的:(Python+Selenium)