selenium 模拟登录163邮箱

Last updated on

记录下简单使用selenium的过程

主要运行环境及库

  • selenium 库
  • webdriver (Chrome、Firefox等)

下载 webdriver并配置

webdriver 下载连接如下

将下载好的webdriver 放入到/usr/bin/目录下,这样做的目的是调用时可以不指明路径

模拟登录163邮箱

1
2
3
4
5
6
browser = webdriver.Chrome()
# 最大化窗口
browser.maximize_window()
browser.get('http://mail.163.com/')
# 停2秒,等待页面加载完毕
time.sleep(2)

因为表单在iframe标签中,要想获取iframe中的内容需要从Frame跳转到iframe中

1
2
3
4
5
6
7
8
# 切换到登录表单
browser.switch_to.frame("x-URS-iframe")
# 填写用户名
browser.find_element_by_name("email").send_keys(username)
# 填写密码
browser.find_element_by_name("password").send_keys(password)
# 登录
browser.find_element_by_id("dologin").click()

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# -*- coding=utf-8 -*-

from selenium import webdriver
import time
import re

# 用户名
username = input('请输入用户名\n > ')
try:
re.match(r'^((?!@163).)*$', username).group()
except:
username = re.sub('@163.com$','',username)
# 密码
password = input('请输入密码\n > ')

browser = webdriver.Chrome()
# 最大化窗口
browser.maximize_window()
browser.get('http://mail.163.com/')
# 等待2秒,等待页面加载完毕
time.sleep(2)

# 切换到登录表单
browser.switch_to.frame("x-URS-iframe")
# 填写用户名
browser.find_element_by_name("email").send_keys(username)
# 填写密码
browser.find_element_by_name("password").send_keys(password)
# 登录
browser.find_element_by_id("dologin").click()