• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Y-wee
博客园    首页    新随笔    联系   管理     

Selenium简单介绍

Selenium简单介绍

​ Selenium 是一个用于 Web 应用程序测试的工具;Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样;支持通过各种 driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动真实浏览器完成测试;selenium 也是支持无界面浏览器操作的

​ Selenium 还可以模拟浏览器功能,自动执行网页中的js代码,实现动态加载

安装驱动

​ 使用 Selenium 之前需要安装驱动,参考文档:https://www.cnblogs.com/Y-wee/p/17034837.html

​ 安装完驱动执行pip install selenium安装 selenium 依赖包,通过from selenium import webdriver导入依赖开始使用:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service(executable_path="./chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=service)
# 发送请求
driver.get("https://www.baidu.com")
# 获取网页源码
page = driver.page_source
print(page)
# 关闭浏览器
driver.quit()

​ selenium 官方文档:https://www.selenium.dev/documentation/

元素定位

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

service = Service(executable_path="./chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=service)

driver.get("https://www.baidu.com")
# 根据 id 获取元素
driver.find_element(by=By.ID, value='su')
# 根据标签的属性值获取元素
driver.find_element(by=By.NAME, value='wd')
# 根据 xpath 获取元素
driver.find_element(by=By.XPATH, value="//input[@id='su']")
# 根据标签名称获取元素
driver.find_element(by=By.TAG_NAME, value='input')
# 根据 bs4 获取元素
driver.find_element(by=By.CSS_SELECTOR, value='#su')
# 根据链接文本获取元素
driver.find_element(by=By.LINK_TEXT, value='新闻')

driver.quit()

​ 以上方法只能获取符合条件的第一个元素,如果需要获取多个符合条件的元素用find_elements()即可

元素交互

import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

service = Service(executable_path="./chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("https://www.baidu.com")

time.sleep(2)

# 获取百度文本输入框
input = driver.find_element(by=By.ID, value='kw')
# 在文本框输入内容
input.send_keys('周杰伦')

time.sleep(2)

# 获取百度搜索按钮
button = driver.find_element(by=By.ID, value='su')
# 点击按钮
button.click()

time.sleep(2)

'''
执行 js 脚本,滑动到最下面
'''
js_bottom = 'document.documentElement.scrollTop=100000'
driver.execute_script(js_bottom)

time.sleep(2)

'''
获取下一页按钮并点击
'''
next_page = driver.find_element(by=By.CLASS_NAME, value='n')
next_page.click()

time.sleep(2)

# 回到上一页
driver.back()

time.sleep(2)

# 回到下一页
driver.forward()

time.sleep(2)

driver.quit()
记得快乐
posted @ 2023-01-30 09:28  Y-wee  阅读(126)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3