selenium源码通读·1 | 源码目录

2023-12-11 01:59
文章标签 源码 selenium 目录 通读

本文主要是介绍selenium源码通读·1 | 源码目录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

·1 | 源码目录

  • 1 源码获取
  • 2 使用pycharm查看源码
  • 3 源码目录
  • 4 目录说明

1 源码获取

  • 官网下载:https://pypi.org/project/selenium/
  • 或使用pip安装:pip install selenium
  • 这里使用pip安装后,目录存在的python的安装目录下,如本文为:
D:\Python37\Lib\site-packages\selenium

2 使用pycharm查看源码

  • 新建一个项目selenium_study

  • 设置项目的Python Interpreter
    在这里插入图片描述

  • 设置完后在外部库中就可以看到对应的python相关库了

  • 注:这里为什么这么复杂的,不就是看个源码吗?怎么还创建了个项目,这个主要是为了后续的源码练习使用的。
    在这里插入图片描述

  • 如上图,在外部库中\Python37\Lib\site-packages\selenium中可看到selenium的源码

3 源码目录

# 在selenium的同级目录使用如下命令,查看完整的selenium源码目录:
tree selenium /f > selenium.txt
D:\PYTHON37\LIB\SITE-PACKAGES\SELENIUM
│  __init__.py
│  
├─common
│  │  exceptions.py
│  │  __init__.py
│          
├─webdriver
│  │  __init__.py
│  │  
│  ├─android
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─blackberry
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─chrome
│  │  │  options.py
│  │  │  remote_connection.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─common
│  │  │  action_chains.py
│  │  │  alert.py
│  │  │  by.py
│  │  │  desired_capabilities.py
│  │  │  keys.py
│  │  │  proxy.py
│  │  │  service.py
│  │  │  touch_actions.py
│  │  │  utils.py
│  │  │  __init__.py
│  │  │  
│  │  ├─actions
│  │  │  │  action_builder.py
│  │  │  │  input_device.py
│  │  │  │  interaction.py
│  │  │  │  key_actions.py
│  │  │  │  key_input.py
│  │  │  │  mouse_button.py
│  │  │  │  pointer_actions.py
│  │  │  │  pointer_input.py
│  │  │  │  __init__.py
│  │  │          
│  │  ├─html5
│  │  │  │  application_cache.py
│  │  │  │  __init__.py
│  │          
│  ├─edge
│  │  │  options.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─firefox
│  │  │  extension_connection.py
│  │  │  firefox_binary.py
│  │  │  firefox_profile.py
│  │  │  options.py
│  │  │  remote_connection.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  webdriver.xpi
│  │  │  webdriver_prefs.json
│  │  │  webelement.py
│  │  │  __init__.py
│  │  │  
│  │  ├─amd64
│  │  │      x_ignore_nofocus.so
│  │  │      
│  │  ├─x86
│  │  │      x_ignore_nofocus.so
│  │          
│  ├─ie
│  │  │  options.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─opera
│  │  │  options.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─phantomjs
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─remote
│  │  │  command.py
│  │  │  errorhandler.py
│  │  │  file_detector.py
│  │  │  getAttribute.js
│  │  │  isDisplayed.js
│  │  │  mobile.py
│  │  │  remote_connection.py
│  │  │  switch_to.py
│  │  │  utils.py
│  │  │  webdriver.py
│  │  │  webelement.py
│  │  │  __init__.py
│  │          
│  ├─safari
│  │  │  permissions.py
│  │  │  remote_connection.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │          
│  ├─support
│  │  │  abstract_event_listener.py
│  │  │  color.py
│  │  │  events.py
│  │  │  event_firing_webdriver.py
│  │  │  expected_conditions.py
│  │  │  select.py
│  │  │  ui.py
│  │  │  wait.py
│  │  │  __init__.py
│  │          
│  ├─webkitgtk
│  │  │  options.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py       

4 目录说明

  • 一级目录主要涉及commonwebdriver
    在这里插入图片描述
  • 其中:
# common:通用的异常类
# webdriver:核心实现类
  • 这里的__init__.py里边主要是版本号,本文是3.141.0
    在这里插入图片描述
  • 具体目录为:
    在这里插入图片描述
  • 详细说明:
目录说明
common/exceptions.py定义了所有可能在webdriver代码中出现的异常
webdriver/android
webdriver/blackberry
webdriver/chrome
webdriver/edge
webdriver/ie
webdriver/firefox
webdriver/opera
webdriver/phantomjs
webdriver/safari
webdriver/webkitgtk
定义各个浏览器兼容的代码,用于支持不同的浏览器
webdriver/common定义了webdriver所指定的通用能力
webdriver/remote定义了webdriver核心能力
webdriver/support定义了webdriver的辅助能力

『全栈测试技术,分享,共勉,共进,提升』


这篇关于selenium源码通读·1 | 源码目录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/479059

相关文章

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL