Selenium 简单应用

一、Selenium 简介:

Selenium 是一个用于自动化 Web 应用程序的工具,可以模拟用户在浏览器中的操作。
安装 WebDriver:

在使用 Selenium 前,需要下载对应浏览器的 WebDriver(如 ChromeDriver)并确保其路径正确设置。

下面介绍一个selenium的应用实例
应用前要先导入库:

  • 导入所需的模块和库,包括 webdriver、Service 和 By,如有需要更多的模块,注意要进行引入
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
  • 加载 WebDriver:创建 Chrome 浏览器的实例,指定 ChromeDriver 的路径,注意这里的路径设置要根据自己电脑中路径准确填写
test_webdriver = webdriver.Chrome(service=Service(r"D:\workspace\utils\chromedriver\最新\chromedriver-win64\chromedriver.exe"))
  • 访问网页:使用 get() 方法打开指定的 URL,这里以百度网页为例
test_webdriver.get('https://www.baidu.com')
  • 获取页面标题:可以通过 title 属性获取当前页面的标题。
print(test_webdriver.title)
  • 输入文本:通过 find_element() 方法获取输入框元素,并使用 send_keys() 方法输入文本。这里通过百度首页中的开发者模式,找到搜索框的标签,根据其“ID”值,通过xpath进行定位。通过send_keys() 方法,实现自动向搜索框输入“Python”
element_input_txt = test_webdriver.find_element(By.ID, 'kw')
element_input_txt.send_keys('python')

点击按钮:同样通过开发者模式找到搜索按钮的标签“ID”,设置鼠标点击事件,实现自动搜索上述搜索框中添加的内容

element_input_btn = test_webdriver.find_element(By.ID, 'alisearch-submit')
element_input_btn.click()
  • 退出浏览器:关闭浏览器并结束 WebDriver 会话。
test_webdriver.quit()

其他应用

(1)鼠标控制

from selenium.webdriver.common.action_chains import ActionChains
test_webdriver = webdriver.Chrome(service=Service(r"D:\workspace\utils\chromedriver\最新\chromedriver-win64\chromedriver.exe"))
# 以get方式向目标发起请求
test_webdriver.get('https://www.baidu.com/')
# 设置睡眠可观察到设置按钮被点击
time.sleep(3)
# 获取百度页面设置按钮
setting = test_webdriver.find_element(By.ID,'s-usersetting-top')
# perform() 支持鼠标事件的函数,没他不行
ActionChains(test_webdriver).move_to_element(setting).perform()

(2)页面的刷新与切换

# 使用需要引入以及加载驱动,这里不在重复,时间函数能够保证观察到效果
#打开百度页面
test_webdriver.get('https://www.baidu.com/')
time.sleep(3)
# 打开百度新闻页面
test_webdriver.get("https://news.baidu.com/")
time.sleep(3)
# 对页面刷新
test_webdriver.refresh()
time.sleep(3)
#返回百度首页,back从哪跳过来的就跳回去哪
test_webdriver.back()
time.sleep(3)
# 页面前进至新闻页面
test_webdriver.forward()
time.sleep(3)
# 退出
test_webdriver.quit()

(3)元素的显示等待

  • WebDriverWait显示等待,5s等待,0.5秒循环一次
  • until,EC场景判断,进行元素选择
  • 参数列表:(1)表示目标,驱动对象 (2)超时的时长范围‘秒’, (3)检查间隙‘秒’
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
test_webdriver = webdriver.Chrome(service=Service(r"D:\workspace\utils\chromedriver\最新\chromedriver-win64\chromedriver.exe"))
# test_webdriver.set_window_size(600,800)
test_webdriver.get("https://www.baidu.com")
# WebDriverWait显示等待,5s等待,0.5秒循环一次
# until,EC场景判断,进行元素选择
# 参数列表:(1)表示目标,驱动对象  (2)超时的时长范围‘秒’,   (3)检查间隙‘秒’
element = WebDriverWait(test_webdriver,5,0.5).until(EC.presence_of_element_located((By.ID,'kw')))
element.send_keys('Python')
time.sleep(5)

(4)隐式等待

# 监测需要定位的 元素是否存在
from selenium.common.exceptions import NoSuchElementException
test_webdriver = webdriver.Chrome(service=Service(r"D:\workspace\utils\chromedriver\最新\chromedriver-win64\chromedriver.exe"))
# test_webdriver.set_window_size(600,800)

#隐式等待5秒
test_webdriver.implicitly_wait(5)
test_webdriver.get("https://www.baidu.com")
try:
    test_webdriver.find_element(By.ID,'kw').send_keys('Python')
    time.sleep(2)
except NoSuchElementException as e:
    print('无此元素')
    print(e)

常用方法总结

  • get(url):打开指定的网址。
  • find_element(by, value):查找单个元素。
  • find_elements(by, value):查找多个元素,返回一个列表。
  • send_keys(value):向输入框发送键入的文本。
  • click():模拟点击操作。
  • quit():关闭浏览器并结束 WebDriver 会话。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值