0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中使用selenium的准备工作

麦辣鸡腿堡 来源:Python都知道 作者:了不起 2023-11-15 11:12 次阅读

定义

Selenium是一个用于Web应用程序测试的自动化测试工具。使用Selenium可以驱动浏览器执行特定的动作,如点击、下拉等操作,还可以获取页面信息,断言页面是否如预期。在工作中我们可以用它来做基于web浏览器的UI自动化测试,也可以用它来做一些固定的页面操作,减少我们重复的手动操作。

准备工作

在使用selenium库时先使用pip命令下载

pip install selenium

selenium库安装完后还需要安装对应得了浏览器驱动,Selenium支持多种浏览器,如Chrome、Firefox等。本篇文章中就以Chrome举例说明。

python使用selenium自动化操作浏览器需要chromedriver驱动,但是浏览器每隔一段时间就自动更新版本,或者换一台电脑运行是就会报错。出现驱动版本和浏览器版本不对应的错误信息,所以这里我们直接在代码中自动下载与当前浏览器版本匹配的驱动。代码如下:

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

def func():
    # 获取当前文件所在目录的绝对路径
    current_dir = os.path.dirname(os.path.abspath(__file__))

    # 设置存放chromedtriver驱动的目录
    driver_path = os.path.join(current_dir, "driver")
    os.makedirs(driver_path, exist_ok=True)
    
    # 自动安装符合当前浏览器的驱动目录
    chromedriver_autoinstaller.install(path=driver_path)
    chromedriver_path = os.path.join(driver_path, chromedriver_autoinstaller.get_chrome_version())

    # 创建一个对象传入chromedriver路径
    service = Service(chromedriver_path)

    # 启动浏览器时使用传入的驱动路径
    driver = webdriver.Chrome(service=service)


func()

再上面的代码中我们直接使用脚本程序去下载我们浏览器对应匹配的chromedriver版本,就直接避免了浏览器升级后导致之前下载的驱动版本不对应的问题,避免重复下载这一步骤。

图片

不过上面的代码可以优化,在下载前去做一个判断,因为每次运行前都会去重复下载一次,所以需要再运行前去找driver_path下面有没有文件,如果有的话就不用下载,直接使用已有的路径,如果没有再去下载就行了,这个就自行优化哈~~~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化测试
    +关注

    关注

    0

    文章

    204

    浏览量

    26890
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68323
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439
收藏 人收藏

    评论

    相关推荐

    高速PCB设计前期的准备工作

    `请问高速PCB设计前期的准备工作有哪些?`
    发表于 04-08 16:32

    Python常用Selenium方法封装是什么

    Python中,常用Selenium方法封装(4)
    发表于 05-18 12:03

    如何在Python中使Selenium

    :Elem.send_keys用于在插入值后按Enter  · 代码行13:关闭  输出值  用户名“ guru99”的值和密码输入。  上述就是关于如何在Python中使Selenium的全部内容介绍,想了解更多关于
    发表于 09-08 18:17

    STM32F407的准备工作

    第1章 初学STM32F407的准备工作俗话说万事开头难,学习一门新的知识,难的往往不是知识本身,而是如何快速上手,需要什么资料和开发环境。一旦上手后,深入的学习就相对容易些了。目录第1章 初学
    发表于 08-10 07:10

    移植前的准备工作以及移植emWin的流程是怎样的?

    移植前的准备工作以及移植emWin的流程是怎样的?
    发表于 11-08 08:27

    ARM准备工作及熟悉开发板

    01、ARM准备工作及熟悉开发板102、ARM准备工作及熟悉开发板203、ARM准备工作及熟悉开发板304、ARM准备工作及熟悉开发板405、原理图及电路图106、原理图及电路图208
    发表于 12-14 08:08

    SPC58NE芯片的开发准备工作

    SPC58系列芯片的开发准备工作因为工作的需要,重新捡起硬件和嵌入式开发的工作。面对的是ST的SPC58NE芯片。准备工作如下:
    发表于 12-23 07:33

    GPIO前的准备工作是什么?

    GPIO前的准备工作是什么?
    发表于 02-10 07:11

    RK3399开发需要做哪些准备工作

    RK3399开发需要做哪些准备工作
    发表于 03-08 06:35

    数控设备安装的准备工作

    数控设备安装的准备工作    一、数控设备对于地基的要求     在实际的数控设备使用厂商中,很多设备使用方忽略了设备安装环境
    发表于 02-25 08:36 1914次阅读

    模拟电路板调试前的准备工作

    模拟电子的相关知识学习教材资料——模拟电路板调试前的准备工作
    发表于 09-27 15:19 0次下载

    FreeRTOS_001_ 准备工作

    FreeRTOS_001_准备工作
    的头像 发表于 03-14 11:21 3110次阅读
    FreeRTOS_001_ <b class='flag-5'>准备工作</b>

    RK3568 SDK 安装准备工作

    RK3568 SDK 安装准备工作
    的头像 发表于 12-13 11:44 937次阅读
    RK3568 SDK 安装<b class='flag-5'>准备工作</b>

    怎样做好电动机起动前的准备工作

    为了防止电动机起动时发生故障,在起动前应缴好以下准备工作
    的头像 发表于 11-08 10:34 764次阅读

    smt加工前的准备工作有哪些?

    一站式PCBA智造厂家今天为大家讲讲smt加工前的准备工作有哪些?SMT贴片加工制程前有哪些准备工作。在工业制造领域,SMT贴片加工是一项非常常见的技术。这种工艺可以提高电路板制造的效率,并保证电路
    的头像 发表于 01-26 09:18 578次阅读