Python使用Selenium WebDriver的入门介绍及安装教程(最新推荐)

 更新时间:2023年04月11日 11:35:48   作者:smart_cat  
这篇文章主要介绍了Python使用Selenium WebDriver的入门介绍及安装教程,本文使用环境为python3.11+win10 64位+firefox浏览器,所以本文使用的浏览器驱动是Firefox的geckodriver ,如果你使用的是其他浏览器,那么选择自己对应的浏览器驱动程序即可,需要的朋友可以参考下

Selenium WebDriver 入门 

一、什么是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

20221212232704

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的驱动。

20221212233419

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

20221212233821

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

20221212233920

2.3 配置环境变量

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

20221212234328

20221212234438

20221212234651

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

20221212234925

当然了,还有个野路子,就是直接把该驱动程序放到你的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、警报等

 title = driver.title

4.建立等待策略
将代码与浏览器的当前状态同步 是Selenium面临的最大挑战之一, 做好它是一个高级主题.基本上, 您希望在尝试定位元素之前, 确保该元素位于页面上, 并且在尝试与该元素交互之前, 该元素处于可交互状态。隐式等待很少是最好的解决方案, 但在这里最容易演示

 driver.implicitly_wait(0.5)

5.发送命令 查找元素
大多数Selenium会话中的主要命令都与元素相关, 如果不先找到元素, 就无法与之交互

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

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

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

7.获取元素信息

 value = message.text

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

 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")

    title = driver.title
    assert title == "Web form"

    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的入门知识,更高阶的主题,将在后续其他文章中专门介绍。

到此这篇关于Python使用Selenium WebDriver的入门介绍及安装教程的文章就介绍到这了,更多相关Python使用Selenium WebDriver内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python关于调用函数外的变量实例

    python关于调用函数外的变量实例

    今天小编就为大家分享一篇python关于调用函数外的变量实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python自然语言处理库之NLTK库初级教程

    Python自然语言处理库之NLTK库初级教程

    NLTK(Natural Language Toolkit)是一个Python库,用于实现自然语言处理(NLP)的许多任务,NLTK包括一些有用的工具和资源,如文本语料库、词性标注器、语法分析器等,在这篇初级教程中,我们将了解NLTK的基础功能,需要的朋友可以参考下
    2023-08-08
  • python使用matplotlib库生成随机漫步图

    python使用matplotlib库生成随机漫步图

    这篇文章主要为大家详细介绍了使用Python的matplotlib库生成随机漫步图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Matlab常见最优化方法的原理和深度分析

    Matlab常见最优化方法的原理和深度分析

    这篇文章主要介绍了Matlab常见最优化方法的原理和深度分析,matlab只是个软件,用来完成机械的计算,而如何安排这些计算,需要用户掌握最基本的数学概念,需要的朋友可以参考下
    2023-07-07
  • python实现批量修改文件名

    python实现批量修改文件名

    这篇文章主要为大家详细介绍了python实现批量修改文件名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 如何实现在jupyter notebook中播放视频(不停地展示图片)

    如何实现在jupyter notebook中播放视频(不停地展示图片)

    这篇文章主要介绍了如何实现在jupyter notebook中播放视频(不停地展示图片),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 浅谈OpenCV中的新函数connectedComponentsWithStats用法

    浅谈OpenCV中的新函数connectedComponentsWithStats用法

    这篇文章主要介绍了浅谈OpenCV中的新函数connectedComponentsWithStats用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python的数学算法函数及公式用法

    python的数学算法函数及公式用法

    在本篇内容里小编给大家分享了一篇关于python的数学算法函数及公式用法,有兴趣的朋友们可以参考下。
    2020-11-11
  • Python实现单例模式的四种方法

    Python实现单例模式的四种方法

    在Python中实现单例模式,意味着一个类只能创建一个实例,单例模式在某些场景下非常有用,比如当你需要控制资源的访问,或者当你想确保全局只有一个对象实例时,本文给大家介绍了几种在Python中实现单例模式的方法,需要的朋友可以参考下
    2024-03-03
  • Win10下安装CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+paddlepaddle-gpu2.0.0

    Win10下安装CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+p

    这篇文章主要介绍了Win10下安装CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+paddlepaddle-gpu2.0.0,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论