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

相关文章

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

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目