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

相关文章

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录