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

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的辅助能力

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


posted @   虫无涯  阅读(20)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示