首页 > 其他分享 >selenium框架之介绍与安装

selenium框架之介绍与安装

时间:2024-04-05 12:22:41浏览次数:23  
标签:webdriver 浏览器 框架 chrome Selenium selenium 驱动 安装

一、selenium的介绍

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器。

因为Selenium可以控制浏览器发送请求,并获取网页数据,因此可以应用于爬虫领域。

Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。

Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。

selenium的缺点也很明显:

  • 速度太慢
  • 对版本配置要求严苛
  • 最麻烦是经常要更新对应的驱动

官方文档:http://selenium-python.readthedocs.io/index.html

二、selenium的安装

Web自动化是指使用自动化工具或脚本来模拟用户在网页上的操作,以执行各种任务,例如测试网站功能、抓取数据、自动填写表单等。Selenium是一个流行的用于Web自动化的工具,它支持多种浏览器,并提供了多种编程语言的接口,如Python、Java、C#等。

以下是Web自动化的一般步骤:

1. 安装Selenium

首先,需要安装Selenium库。在Python中,您可以使用pip来安装Selenium:

pip install selenium

或者

在pycharm中添加

image

2. 下载浏览器驱动

Selenium需要浏览器驱动来控制浏览器。您需要下载相应浏览器的驱动,如Chrome Driver、Firefox Driver等,并确保驱动版本与您的浏览器版本匹配。

查看浏览器版本,下载对应驱动,相关驱动的下载链接如下

Chrome驱动:Chrome for Testing availability (googlechromelabs.github.io)

Firefox驱动:Release - geckodriver - GitCode

Edge驱动:Microsoft Edge WebDriver | Microsoft Edge Developer

3. 创建WebDriver实例

使用Selenium,您需要创建一个WebDriver实例,这将是您控制浏览器的接口。

from selenium import webdriver

# 创建一个Chrome浏览器实例
driver = webdriver.Chrome()

4. 打开网页

使用WebDriver实例的get方法打开网页:

driver.get('https://www.example.com')

5. 查找元素并操作

您可以使用各种方法来查找页面元素,如ID、类名、标签名等,然后模拟用户操作,比如点击按钮、填写表单等。

element = driver.find_element_by_id('element_id')
element.click()

6. 执行其他操作

您可以执行其他操作,如等待页面加载、切换窗口、处理弹窗等。

from selenium import webdriver
# 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.by import By
# 键盘按键操作
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
# 等待页面加载某些元素
from selenium.webdriver.support.wait import WebDriverWait

# 老版本写法:executable_path : 可以指定驱动位置 (新版本已经不用了)
# chrome = webdriver.Chrome(executable_path='./chromedriver.exe')
# 也可以将驱动加到环境变量中,自动检索驱动位置
chrome = webdriver.Chrome()

try:
    # 自动打开浏览器,请求目标网址
    chrome.get('https://www.jd.com')
    # 找到搜索框对应的标签
    # input_tag = chrome.find_element(By.ID, 'key')
    input_tag = chrome.find_element(value="key")
    # 自动传入关键字
    input_tag.send_keys('hellokitty')
    # 自动回车(搜索)
    # 也可以找到搜索标签 btn.click
    input_tag.send_keys(Keys.ENTER)
    wait = WebDriverWait(chrome, 10)
    # time.sleep(3)
    # 等到id为J_goodsList的元素加载完毕,最多等10秒
    wait.until(EC.presence_of_element_located((By.ID, 'J_goodsList')))
    chrome.save_screenshot("hellokitty.png")
finally:
    # 关闭浏览器页面
    chrome.close()

7. 关闭浏览器

完成自动化任务后,记得关闭WebDriver实例:

driver.quit()
或者
# 关闭浏览器页面
chrome.close()

8、补充

新版本如何指定驱动位置

from selenium.webdriver.chrome.service import Service
executable_path = '浏览器驱动路径'
service = Service(executable_path=executable_path)

driver = webdriver.Chrome(service=service)

标签:webdriver,浏览器,框架,chrome,Selenium,selenium,驱动,安装
From: https://www.cnblogs.com/xiao01/p/18115633

相关文章

  • 12、selenium框架之Cookie操作
    一、查看浏览器cookiecookie、session、token的区别:cookie存储在浏览器本地客户端,发送的请求携带cookie时可以实现登录操作。session存放在服务器。token应用于应用程序。F12查看浏览器cookie:二、cookie基本操作1、获取cookie:fromseleniumimportwebdriverfromsele......
  • selenium框架之动作链
    Selenium框架中的动作链(ActionChains)是一种用于执行复杂用户交互操作的方法。通过使用动作链,可以模拟鼠标操作、键盘操作和其他复杂的用户交互行为。这对于处理拖放、鼠标悬停、键盘按键组合等操作非常有用。比如:对于输入框,我们就调用它的输入文字和清空文字方法;对于按钮,就调......
  • 博客园openlivewriter安装配置教程
    1.下载openlivewriter-0500_含中文包.zip 2.点击“setup”,选“Otherservices”3.填写帐号信息。password获取:登录博客后台,进“设置”,拉到最下方,查看并复制,贴到password中。然后next,最后Finish就OK了。......
  • 5.1 回溯法的算法框架
     第5章回溯法回溯法,作为一种高效的搜索算法,以其深度优先的搜索策略和高效的问题求解能力在算法设计和问题解决中占有重要地位。本章旨在深入探讨回溯法的原理、算法框架及其应用,帮助读者系统地理解和掌握回溯法。学习要点理解回溯法的深度优先搜索策略。掌握回溯法解题......
  • 从零开始实现一个RPC框架(一)
    前言在上一篇文章中我们先列举了大致的需求,定义了消息协议。这次我们着手搭建基本的RPC框架,首先实现基础的方法调用功能。功能设计RPC调用的第一步,就是在服务端定义要对外暴露的方法,在grpc或者是thrift中,这一步我们需要编写语言无关的idl文件,然后通过idl文件生成对应语言......
  • idea开发 java web 配电室后台管理系统bootstrap框架web结构java编程计算机网页
    一、源码特点 java配电室后台管理系统是一套完善的完整信息系统,结合javaweb开发和bootstrapUI框架完成本系统,对理解JSPjava编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。前段主要技术cssjquery bootstrapUI框架后端主要技术javaj......
  • 【Redis系列】Redis安装与使用
    ......
  • MLIR中间表示和编译器框架
    MLIR中间表示和编译器框架背景随着深度学习技术的发展,深度学习技术也逐渐从学术研究的方向转向了实践应用的方向,这不仅对深度模型的准确率有了较高的需求,也对深度模型的推理速度有了越来越高的需求。目前深度模型的推理引擎按照实现方式大体分为两类:解释型推理引擎:一般包含......
  • 分布式进阶(四)——分布式框架之高性能:消息丢失
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 分布式进阶(五)——分布式框架之高性能:消息有序性
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......