文章目录
- 前言
- 一、环境的安装
- (一)Selenium的安装
- (二)安装浏览器驱动
- (三)配置环境变量
- 二、使用步骤
- (一)基本使用
- (二)模拟登录豆瓣
前言
本篇文章主要讲解了Selenium WebDriver的安装和使用方法,并演示了如何利用Selenium模拟登录豆瓣。
一、环境的安装
(一)Selenium的安装
Selenium 是一个开源的自动化测试框架,主要用于Web应用程序的测试。它提供了一套工具和库,可以模拟用户在浏览器中的操作,如点击按钮、填写表单和导航网页。Selenium 支持多种浏览器(如Chrome、Firefox、Safari等)和编程语言(如Java、Python、C#等),使得测试人员能够编写跨浏览器的自动化测试脚本。
安装selenium库
使用国内源:阿里云源
pip3 install selenium -i https://mirrors.aliyun.com/pypi/simple
查看selenium版本
pip show selenium
(二)安装浏览器驱动
WebDriver 是 Selenium 框架中的核心组件之一,它用于与浏览器进行交互,从而实现自动化测试。WebDriver 提供了一种简单的编程接口,可以用于控制浏览器的行为,模拟用户与网页的交互。
安装webdriver
https://chromedriver.storage.googleapis.com/index.html
我下载的是旧版本的102.0.5005.61的驱动
谷歌太新导致不兼容,卸载新版本下载老版本谷歌就可以了
https://www.chromedownloads.net/chrome64win/
https://downzen.com/en/windows/google-chrome/versions/
(三)配置环境变量
将下载的驱动程序放到计算机的全局变量中
查看版本
至此,Selenium和谷歌驱动的配置已经完成。
二、使用步骤
(一)基本使用
现在我们可以启动Python来尝试启动谷歌浏览器。
访问百度 >>> from selenium import webdriver >>> driver=webdriver.Chrome() >>> driver.get("http://www.baidu.com")
窗口最大化:driver.maximize_window()
driver.back() #后退百度首页
driver.forward() #前进豆瓣首页
driver.refresh() #刷新当前页面
print(driver.title) #获取豆瓣首页的标题信息
print(driver.current_url) #获取当前页面url
(二)模拟登录豆瓣
豆瓣登录有密码登录和短信登录,选择密码登录
F12使用开发者工具定位到密码登录的元素
定位class属性
Selenium元素定位的代码运行之后会报错,发现是Selenium更新到新版本(4.x版本)后,以前的一些常用的代码的语法发生了改变
Selenium降级以后,使用失败,继续用新版本的selenium,使用新版本定位元素代码
新版本Selenium元素定位代码: # inputTag = driver.find_element_by_id("value") # 利用ID查找 # 改为: inputTag = driver.find_element(By.ID, "value") # inputTags = driver.find_element_by_class_name("value") # 利用类名查找 # 改为: inputTag = driver.find_element(By.CLASS_NAME, "value") # inputTag = driver.find_element_by_name("value") # 利用name属性查找 # 改为: inputTag = driver.find_element(By.NAME, "value") # inputTag = driver.find_element_by_tag_name("value") # 利用标签名查找 # 改为: inputTag = driver.find_element(By.TAG_NAME, "value") # inputTag = driver.find_element_by_xpath("value") # 利用xpath查找 # 改为: inputTag = driver.find_element(By.XPATH, "value") # inputTag = driver.find_element_by_css_selector("value") # 利用CSS选择器查找 # 改为: inputTag = driver.find_element(By.CSS_SELECTOR, "value")
定位账号和密码
定位ID属性
总代码:
from selenium import webdriver from selenium.webdriver.common.by import By import time #打开浏览器,访问豆瓣网址 driver = webdriver.Chrome() # driver.maximize_window() #窗口最大化 driver.get("https://accounts.douban.com/passport/login") #点击密码登录 element = driver.find_element(By.CLASS_NAME, 'account-tab-account') element.click() #定位账号和密码 driver.find_element(By.ID,'username').send_keys('******') #模拟键盘输入操作 driver.find_element(By.ID,'password').send_keys('******') #点击登录豆瓣 driver.find_element(By.LINK_TEXT,'登录豆瓣').click() #通过部分链接文本定位元素 #等待20秒以后,自动关闭 time.sleep(20) driver.quit()
登录成功。