文章目录
- Selenium 自动化流程
- 下载,安装浏览器驱动
- 网页资源下载
- 百度网盘资源下载
- 操作使用
- 简单使用
- 版本变化,语法改变
- find_element | find_elements 区别
- 获取指定元素
- 输入框操作
- xpath 选择器
Selenium 自动化流程
- 自动化程序调用
selenium
客户端库函数; - 客户端库会发送
selenium
命令给浏览器的驱动程序; - 浏览器驱动程序接收到命令后,驱动浏览器去执行命令;
- 浏览器执行命令;
- 浏览器驱动程序获取命令执行结果,返回给我们自动化程序;
- 自动化程序对返回结果进行处理。
下载,安装浏览器驱动
- 注意:浏览器驱动版本必须与浏览器版本匹配。
网页资源下载
- 谷歌浏览器下载地址:
https://www.google.cn/chrome/
-
Chrome
浏览器驱动下载:https://chromedriver.storage.googleapis.com/index.html
百度网盘资源下载
链接:https://pan.baidu.com/s/16lamRFfeAm6Fr9X8cQQPQQ
提取码:4z2t
操作使用
简单使用
# -*- coding: utf-8 -*-
from selenium import webdriver
# 创建 WebDriver 对象,使用 chrome 驱动
wd = webdriver.Chrome(r"C:\zhang\webDriver\chromedriver.exe")
# 调用 WebDriver 对象的 get 方法,浏览器页面显示
wd.get("https://www.baidu.com")
# 关闭浏览器界面
wd.close()
版本变化,语法改变
- 之前版本:
# 初始化代码 ....
wd.find_element_by_id('username').send_keys('byhy')
wd.find_element_by_class_name('password').send_keys('sdfsdf')
wd.find_element_by_tag_name('input').send_keys('sdfsdf')
wd.find_element_by_css_selector('button[type=submit]').click()
- selenium 到版本 4 以后
find_element_by*
方法作为过期不赞成做法,运行有警告。
from selenium.webdriver.common.by import By
# 初始化代码 ....
wd.find_element(By.ID, 'username').send_keys('byhy')
wd.find_element(By.CLASS_NAME, 'password').send_keys('sdfsdf')
wd.find_element(By.TAG_NAME, 'input').send_keys('sdfsdf')
wd.find_element(By.CSS_SELECTOR,'button[type=submit]').click()
find_element | find_elements 区别
-
find_elements
选择的是符合条件的所有
元素,如果没有符合条件的元素,返回空列表
-
find_element
选择的是符合条件的第一个
元素,如果没有符合条件的元素,抛出NoSuchElementException
异常
获取指定元素
- 获取标签中内容
# <span>狮子</span>
element.text
- 获取标签属性值
# <a href="......"></a>
element.get_attribute("href")
- 获取元素对应的
HTML
# 获取整个元素对应的 `HTML` 文本内容
element.get_attribute("otherHTML")
# 获取元素内部的HTML 文本内容
element.get_attribute("innerHTML")
- 获取文本框中数据
element.get_attribute("value")
- 获取元素文本内容
# 可以使用text 属性,获取元素展示在界面的文本内容。
# 注意:有时候,文本内容没有展示在界面上,或者没有完全展示在界面上。
element.get_attribute("innerText")
element.get_attribute("textContent")
输入框操作
send_keys
- 选择指定输入框
- 如果输入框中有提示字符,需要先
清除掉
- 调用方法填入对应内容
element = wd.find_element(By.ID, "input_1")
# 清除输入框中已有的字符串
element.clear()
# 输入新字符串
element.send_keys("....")
xpath 选择器
By.XPATH
base_url = "https://chromedriver.storage.googleapis.com/index.html"
# 创建 WebDriver 对象,使用 chrome 驱动
wd = webdriver.Chrome(r"C:\zhang\webDriver\chromedriver.exe")
wd.get(base_url)
wd.find_elements(By.XPATH, "//tr/td[2]/a")