一. selenium自动化环境搭建
python 3.11版本+Chrome浏览器111 + selenium4.5 + 浏览器驱动
需要导入
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
二. driver的方法
(1)# 实例化浏览器
driver = webdriver.Chrome()
(2)# 打开网址
driver.get(‘https://www.baidu.com/’)#方法可以跳转到要访问的网页去
(3)元素定位,并输入文本
driver.find_element(By.ID, “kw”).send_keys(“易烊千玺”)
(4)元素定位,点击确定
driver.find_element(By.ID, “su”).click()
(5)获得页面的当前url地址,可用于判断当前页面
print(driver.current_url)
(6)可获得当前页面的标题,可用于判断当前页
print(driver.title)
(7)刷新页面
driver.refresh()
(8)可以返回上一个页面,即跳转回到百度首页了
driver.back()
(9)关闭页面
driver.quit()
(10)隐式等待(需要等待的秒数)
driver.implicitly_wait()
(11)滚动页面
driver.execute_script('window.scrollBy(0,1000)')
time.sleep(1)
#定义一个初始值
temp_height = 0
while True:
# 循环将滚动条下拉
driver.execute_script("window.scrollBy(0,1000)")
# sleep一下让滚动条反应一下
time.sleep(0.05)
# 获取当前滚动条距离顶部的距离
check_height = driver.execute_script(
"return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
# 如果两者相等说明到底了
if check_height == temp_height:
driver.refresh()
# 在这里获取网页源代码
html_data = driver.page_source
time.sleep(1)
# print(html_data)
break
temp_height = check_height
print(check_height)
三.selenium常用定位方法
1. Xpath语法的相关知识
(1) .写法: //*/[@属性 = “属性值”]
//相对路径
任意元素
(2). 常用Xpath定位方法
文本定位
//a[text()="我的书架"]
id定位
//label[@id="btnSearch"
]
属性定位
``//[@placeholder=“密码”]```
2. CLASS_NAME定位
inputEle = driver.find_elements(By.CLASS_NAME, "el-input__inner")
login = inputEle[0].send_keys("18696546879")
password = inputEle[1].send_keys("123456")
3. ID定位
driver.find_element(By.ID, “su”).click()
4.NAME定位
driver.find_element(By.NAME, '退出').click()
5.CSS_SELECTOR定位(一般很少用)
四. 元素定位小技巧
1. 在浏览器上使用Xpath-helper插件
这个插件可以使用Xpath语法定位元素高亮显示,便于某个元素多的时候定位,能快速定位元素的下标