Selenium 是什么?
Selenium 是一个用于 Web 应用程序测试的工具。它直接运行在浏览器中,就像真实的用户在操作一样,由于这个性质,Selenium 也是一个强大的网络数据采集工具,它可以让浏览器自动加载页面,这样使用了异步加载技术的网页,也可获取其需要的数据。
Selenium 模块是Python 的第三方库,可以通过 pip
进行安装
pip install selenium
WebDriver是一个开源工具,用于跨多个浏览器自动测试Web应用程序。它提供了导航到网页,用户输入,JavaScript执行等功能。ChromeDriver是一个独立的服务器,它为Chromium 实现了WebDriver的有线协议。 ChromeDriver官网
ChromeDriver 是 google 为网站开发人员提供的自动化测试接口,它是 selenium2 和 chrome浏览器 进行通信的桥梁。selenium 通过一套协议(JsonWireProtocol :https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol)和 ChromeDriver 进行通信,selenium 实质上是对这套协议的底层封装,同时提供外部 WebDriver 的上层调用类库。
安装ChromeDriver过程中遇到的问题:
正常情况下安装 ChromeDriver 很简单,去官网 下载地址选择对应版本的包就可以。需要注意的是环境变量的配置这里有一下几点:
1. 一般情况下我们都放在 谷歌浏览器 目录下
2. 另外在你的python解释器里面也放置一份
3. 添加系统环境变量
网上的大部分教程都没有提及在python 解释器放一份,我今天一直报找不到路径的错,后来就把绝对路径 driver = webdriver.Chrome()
写在()
里先测试了,后面看到了这个在python 解释器放一份的方法,试了一下,果然很有效!
今天任务:使用selenium模拟登陆163邮箱。
driver.switch_to.frame(0) # 1.用frame的index来定位,第一个是0
这个很重要,也是卡了我很久的原因
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://mail.163.com/')
time.sleep(5)
driver.switch_to.frame(0)
driver.find_element_by_name('email').clear() # 清除输入框数据
driver.find_element_by_name('email').send_keys('*******') # 输入账号
driver.find_element_by_name('password').clear() # 清除输入框数据
driver.find_element_by_name('password').send_keys('*****') # 输入登陆密码
driver.find_element_by_id('dologin').click() # 点击登陆
print(driver.page_source)
成功后的截图如下: