《模拟通过账户密码登陆163邮箱》
第一:首先要下载Google Chrome浏览器,查看Google Chrome浏览器的版本信息(点击Google Chrome浏览器的右上角的下的“帮助”下的“关于Google Chrome”),可以看到我的版本是:75.0.3770.80(正式版本) (64 位)
第二:下载对应自己版本的Google Chrome浏览器的”chromedriver“驱动,并和操作路径放在同一文件下,
我的是在C:\user\78549这个文件下(也就是把下载好的chromedriver文件放在C:\user\78549文件下)
”chromedriver“驱动下载网址: http://chromedriver.storage.googleapis.com/index.html
第三:这里我先把代码全部陈列,然后逐一解释
from selenium import webdriver #先安装selenium模块,再导入模块
import time #导入time模块
url="https://mail.163.com/" #163邮箱的网址
browser=webdriver.Chrome() #打开网址程序,Chrome 是 WebDriver 的子类,是 WebDriver 类的一种
browser.get(url) #浏览器打开https://mail.163.com/网址
pw_login=browser.find_element_by_id("switchAccountLogin")
pw_login.click() #找到密码登陆的界面,click()鼠标左键点击页面元素
time.sleep(2) #停留2秒
iframe1=browser.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")#单引号和双引号分别开,要一单一双才行
browser.switch_to.frame(iframe1)
email=browser.find_element_by_name("email")
email.clear()#清除已有的账号信息
email.send_keys("hellollll") #输入自己的账号
time.sleep(2) #停留2秒
password=browser.find_element_by_name("password")
password.send_keys("l234567") #输入自己的密码
time.sleep(2) #停留2秒
button=browser.find_element_by_id("dologin") #登陆
button.click() #click()鼠标左键点击页面元素
第四:先看看163邮箱网页,长这样
再点击右上角下的“更多工具”下的“开发者工具”,能看到下图右边的源代码。
点击一下右边源代码最左上角的按钮,使它变蓝,然后鼠标放在左边“密码登陆”时,右边被选中的代码就是这个“密码登陆”的源代码,可以看到,id="switchAccountLogin",双击它,会选中,然后可以复制粘贴。
所以,以下这两行代码是定位密码登陆界面
pw_login=browser.find_element_by_id("switchAccountLogin")
pw_login.click() #找到密码登陆的界面
第五:当出现下图密码登陆界面后,我们要输入账号密码,鼠标放在账号处,右边的被选中源代码就是输入账号的源代码,name="email"
email=browser.find_element_by_name("email")
email.clear()#清除已有的账号信息
email.send_keys("hellollll") #输入自己的账号
同理,也可以找到输入密码的源代码 ,name="password"
同理也可以找到 登陆 的源代码 ,id="dologin"
第六: 代码行中加入两行如下代码,是因为,不加这个的话,表示在整个网址的全局代码下检索name="email"和name="password",但是它俩都在一个共同的“主代码”下,就是说,得先找到下图小范围,才能在下图中再找“账号”和“密码”,通俗的讲,就是我把一个名字为lll.txt文档放在C盘下得User文件下,我们在找lll.txt文档时,需要先找到User文件夹,再在文件夹下找lll.txt。
我们利用 Python 进行面向对象编程,需要首先了解一个概念:类
类是任何面向对象编程的语言的基本组成,描述了使用的基本方法。我们可能在目前,还不是特别明白类的含义,但是我们可以通过类的使用,来进一步了解。
类的使用
类,通过实例化进行使用。比如有一个类: Driver
,该类有一个方法: head(road)
那么关于这个类的使用,只需要两个步骤:
- 实例化该类:
d = Driver()
- 调用类的方法:
d.head("中山路")
所以,这两行代码是为了找到“User”文件夹(举的例子)
iframe1=browser.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")#单引号和双引号分别开,要一单一双才行
browser.switch_to.frame(iframe1)