前提条件:
安装好:webdriver-manager 和 selenium 库
python
pip install webdriver-manager
python
pip install selenium==4.0.0
注意:4.0.0 是版本号
一、常用函数
web 测试代码的基本框架:
python
import time
from zoneinfo import reset_tzpath
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
# 编写自动化脚本------具体步骤
# 1.打开浏览器------使用驱动来打开
ChromeIns=ChromeDriverManager().install()#安装谷歌浏览器驱动,返回值是一个驱动路径
# 创建谷歌浏览器的驱动对象
driver=webdriver.Chrome(service=Service(ChromeIns))
time.sleep(2)
# 2.输入百度网址:https://www.baidu.com
driver.get("https://www.baidu.com")
# 3. 找到百度输入框,输入关键字:"鞠婧祎"
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("鞠婧祎")
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").clear()#清空文本
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("赵露思")
# 4.点击百度一下按钮
driver.find_element(By.CSS_SELECTOR,"#chat-submit-button").click()
time.sleep(5)
# # 5.关闭浏览器
driver.quit()
查找元素:find_element(方式,"元素"),只能查找一个元素
find_elements(方式,"元素"),查找同一个元素的不同的值:就是变量一样,值不一样;
cpp
ret = driver.find_elements(By.CSS_SELECTOR,"#hotsearch-content-wrapper > li")
for t in ret:
print(t.text)#获取每个元素对应的文本

常见的元素定位方式非常多,如 id,classname,tagname,xpath,cssSelector
常用的主要由 cssSelector 和 xpath
cpp
# 4.点击百度一下按钮
driver.find_element(By.XPATH,"//*[@id='chat-submit-button']").click()
xpath:例如://*[@id="chat-submit-button"]
//* :获取 html 上所有的节点
// [指定节点]:获取HTML页面指定的节点
sends_keys:模拟键盘输入数据;
click():点击,或者提交对象;
clear():清空文本;注意:连续的 send_keys 会把输入的文本拼接在一起,无法达到 clear 的效果;
cpp
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("鞠婧祎")
time.sleep(1)
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").clear()#清空文本
time.sleep(3)
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("赵露思")
text():获取文本
注意:文本 != 属性,例如:按钮上的文字就是属性
cpp
t=driver.find_element(By.CSS_SELECTOR,"#chat-submit-button").text
print(t)
get_attribute():获取属性信息
cpp
t=driver.find_element(By.CSS_SELECTOR,"#chat-submit-button").get_attribute("属性")
print(t)
driver.quit()
title:获取网页的标题
current_url:获取当前的网页的网址
cpp
t=driver.title
print(t)
t=driver.current_url
print(t)

使用场景:页面元素可点击的跳转的清空下,用来检测跳转的结果是否是正确的;
二、窗口
当我们切换页面时,我们要更换页面的句柄:
cpp
ChromeIns=ChromeDriverManager().install()#安装谷歌浏览器驱动,返回值是一个驱动路径
# 创建谷歌浏览器的驱动对象
driver=webdriver.Chrome(service=Service(ChromeIns))
time.sleep(2)
# 2.输入百度网址:https://www.baidu.com
driver.get("https://www.baidu.com")
curHandle = driver.current_window_handle#获取当前的网页的句柄
print(driver.title)
print(driver.current_url)
driver.find_element(By.CSS_SELECTOR,"#hotsearch-content-wrapper > li:nth-child(1) > a").click()
allhandle = driver.window_handles#获取所有打开网页的句柄
for handle in allhandle:
if handle != curHandle:
driver.switch_to.window(handle)#切换句柄
print(driver.title)
print(driver.current_url)
driver.quit()
