脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python使用Selenium WebDriver的入门介绍及安装教程

Python使用Selenium WebDriver的入门介绍及安装教程

2023-08-16 17:21smart_cat Python

WebDriver 以本地化方式驱动浏览器,就像用户在本地或使用 Selenium 服务器的远程机器上所做的那样,这标志着浏览器自动化的飞跃。Selenium WebDriver 指的是语言绑定和各个浏览器控制代码的实现。这通常被称为 WebDriver。Selenium WebDri

一、什么是Selenium WebDriver

WebDriver 以本地化方式驱动浏览器,就像用户在本地或使用 Selenium 服务器的远程机器上所做的那样,这标志着浏览器自动化的飞跃。

Selenium WebDriver 指的是语言绑定和各个浏览器控制代码的实现。 这通常被称为 WebDriver。

Selenium WebDriver 是 W3C 推荐标准。

  • WebDriver 被设计成一个简单和简洁的编程接口。
  • WebDriver 是一个简洁的面向对象 API。
  • 它能有效地驱动浏览器。

本文绝大部分内容,都可以从以下官方文档中找到。

https://www.selenium.dev/zh-cn/documentation/webdriver/

二、安装Selenium WebDriver

本文使用环境为python3.11 + win10 64位 + firefox浏览器,所以本文使用的浏览器驱动是Firefox的geckodriver ,如果你使用的是其他浏览器,那么选择自己对应的浏览器驱动程序即可。

2.1 安装selenium类库

最简单的方式就是使用pip直接安装

pip install selenium

Python使用Selenium WebDriver的入门介绍及安装教程

2.2 安装浏览器驱动

通过WebDriver, Selenium支持市场上所有主要浏览器, 如Chrome、Firefox、Internet Explorer、Edge和Safari. WebDriver尽量使用浏览器内置的自动化支持 来驱动浏览器.

由于除Internet Explorer之外的所有驱动程序实现 都是由浏览器供应商自己提供的, 因此标准Selenium发行版中不包括这些驱动程序. 本节介绍了使用不同浏览器的基本要求.

打开以下网址https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/install_drivers/

找到浏览器驱动下载的链接,这里可以看到Selenium支持的多个浏览器驱动,你自己电脑上装了什么浏览器,就下载对应的驱动程序即可,本文使用的是firefox,所以选择firefox的驱动。

Python使用Selenium WebDriver的入门介绍及安装教程

点击firefox驱动下载链接,进入到github的releases页面,可以看到各个版本的驱动程序,本文是win10 64位,选择的是 geckodriver-v0.32.0-win-aarch64.zip ,根据自己的系统选择对应的文件即可。

Python使用Selenium WebDriver的入门介绍及安装教程

解压后是一个可执行文件,如下所示:

Python使用Selenium WebDriver的入门介绍及安装教程

2.3 配置环境变量

依次打开我的电脑->属性->高级系统设置->环境变量,双击path,点击新建,输入驱动程序geckodriver.exe所在的目录即可,然后一路点击确定。

Python使用Selenium WebDriver的入门介绍及安装教程

Python使用Selenium WebDriver的入门介绍及安装教程

Python使用Selenium WebDriver的入门介绍及安装教程

简单验证一下,新打开一个控制台,输入驱动程序文件名,此处为geckodriver.exe,能够正常打开即可

Python使用Selenium WebDriver的入门介绍及安装教程

当然了,还有个野路子,就是直接把该驱动程序放到你的Python目录下Scripts文件夹中,执行python脚本的时候也能够直接打开即可。比如我的目录是D:\Python\Python311\Scripts

三、编写第一个Selenium脚本

当你完成 Selenium安装 and 驱动安装 后, 便可以开始书写Selenium脚本了。

Selenium所做的一切, 就是发送给浏览器命令, 用以执行某些操作或为信息发送请求. 您将使用Selenium执行的大部分操作, 都是以下基本命令的组合:

  1. 使用驱动实例开启会话

     driver = webdriver.Firefox()
    
  2. 在浏览器上执行操作

    在本例中, 我们 导航 到一个网页.

     driver.get("https://www.selenium.dev/selenium/web/web-form.html")
    
  3. 请求浏览器信息

    您可以请求一系列关于浏览器的信息 , 包括窗口句柄、浏览器尺寸/位置、cookie、警报等

     submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
    
  4. 操作元素

    对于一个元素, 只有少数几个操作可以执行, 但您将经常使用它们

     text_box.send_keys("Selenium")
     submit_button.click()
    
  5. 获取元素信息

     value = message.text
    
  6. 结束会话

    这将结束驱动程序进程, 默认情况下, 该进程也会关闭浏览器. 无法向此驱动程序实例发送更多命令

     driver.quit()
    

让我们将这8个部分组合成一个完整的脚本, 包括需要使用的库

from selenium import webdriver
from selenium.webdriver.common.by import By


def test_eight_components():
    driver = webdriver.Firefox()

    driver.get("https://www.selenium.dev/selenium/web/web-form.html")

    assert    driver.implicitly_wait(0.5)

    text_box = driver.find_element(by=By.NAME, value="my-text")
    submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")

    text_box.send_keys("Selenium")
    submit_button.click()

    message = driver.find_element(by=By.ID, value="message")
    value = message.text
    assert value == "Received!"

    driver.quit()

以上只是selenium webdriver的入门知识,更高阶的主题,将在后续其他文章中专门介绍。

到此这篇文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/hubing_hust/article/details/128295216

延伸 · 阅读

精彩推荐
  • Pythonpython机器学习之决策树分类详解

    python机器学习之决策树分类详解

    这篇文章主要介绍了python机器学习之决策树分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Jeffrey_Cui11352020-12-26
  • PythonPython 的类、继承和多态详解

    Python 的类、继承和多态详解

    本文通过实例给大家详细解释了Python 的类、继承和多态的定义和用法,非常实用,有需要的小伙伴可以参考下...

    adam1q845532020-11-26
  • PythonPython实现抖音热搜定时爬取功能

    Python实现抖音热搜定时爬取功能

    这篇文章主要为大家介绍了利用Python制作的一个新摸鱼神器,可以实现抖音热搜定时爬取。文中的实现步骤讲解详细,感兴趣的可以试一试...

    Python丁小杰7432022-11-02
  • PythonPython如何telnet到网络设备

    Python如何telnet到网络设备

    这篇文章主要介绍了Python如何telnet到网络设备,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下...

    Singvis10872021-09-05
  • Pythonpython和opencv实现抠图

    python和opencv实现抠图

    这篇文章主要为大家详细介绍了使用python和opencv实现抠图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    ncst12142021-03-18
  • PythonPython绘制散点图的教程详解

    Python绘制散点图的教程详解

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟...

    Vertira10632022-11-03
  • Pythonpython虚拟环境virtualenv的使用教程

    python虚拟环境virtualenv的使用教程

    本篇文章主要介绍了python虚拟环境virtualenv的使用教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Pyerlife12132020-12-12
  • PythonPython设计足球联赛赛程表程序的思路与简单实现示例

    Python设计足球联赛赛程表程序的思路与简单实现示例

    足球联赛的赛制就是一支队伍在一个赛季中主客场分别面对联赛中除了自身以外的球队一次,对此我们可以使用一种循环算法来实现,接下来就一起来看一下...

    mattkang6722020-08-30