Selenium3 Python WebDriver API源码探析(2):Selenium包目录结构、模块功能概述

Selenium 包结构概述

Selenium 包结构如下:

selenium
├─common
└─webdriver
    ├─android
    ├─blackberry
    ├─chrome
    ├─common
    │  ├─actions
    │  └─html5
    ├─edge
    ├─firefox
    ├─ie
    ├─opera
    ├─phantomjs
    ├─remote
    ├─safari
    ├─support
    └─webkitgtk
  • common包:仅包含exceptions.py模块,定义了异常类。
  • webdriver包:核心API
    • remote包定义了核心基类,其中webdriver.pywebelement.py是API中的关键,定义了浏览器的通用操作方法和元素的处理方法。
    • common包定义键盘事件、鼠标事件、触屏事件、浏览器参数设置、元素定位、代理等基础行为处理。
    • support包定义了事件处理、事件触发、UI、超时处理等基类。
    • androidbackberrychromeedgefirefoxieoperaphantomjssafariwebkitgtk等子包为对不同浏览器的支持。

Selenium 包、模块结构及功能详细说明

│  __init__.py # 定义__version__属性
│
├─common #一级子包
│  │  exceptions.py # 定义异常类
│  │  __init__.py # 导入异常类
│
├─webdriver # 一级子包,核心API包
│  │  __init__.py # 命名空间整合,定义了各浏览器API的快捷接口
│  │
│  ├─android # 二级子包,Android端webview支持
│  │  │  webdriver.py  # 使用WebView创建Selendroid实例
│  │  │  __init__.py
│  │
│  ├─blackberry # 二级子包,黑莓手机浏览器支持
│  │  │  webdriver.py
│  │  │  __init__.py
│  │
│  ├─chrome # 二级子包,Chrome浏览器支持
│  │  │  options.py
│  │  │  remote_connection.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │
│  ├─common # 二级子包,定义了键盘事件、鼠标事件、触屏事件、浏览器参数设置、元素定位、代理等基础行为处理
│  │  │  action_chains.py # 定义了底层的自动化交互的方法,如鼠标移动、鼠标按键等
│  │  │  alert.py # 定义了alert弹出的处理方法
│  │  │  by.py # 仅有一个By类作为命名空间,定义了8个类变量,即元素定位策略集合
│  │  │  desired_capabilities.py # 定义和实现了不同浏览器的DesiredCapabilities
│  │  │  keys.py # 仅有一个Keys类作为命名空间,定义了各种功能键的Unicode编码
│  │  │  proxy.py # 定义了各类代理的实现
│  │  │  service.py # 定义了连接、关闭等基础服务
│  │  │  touch_actions.py # 定义了移动设备的一些基础操作
│  │  │  utils.py # 定义了一些的辅助函数
│  │  │  __init__.py
│  │  │
│  │  ├─actions # 三级子包,移动端各类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 # 三级子包,HTML5支持
│  │  │  │  application_cache.py # 定义了应用缓存的状态编码和缓存状态的获取方法
│  │  │  │  __init__.py
│  │
│  ├─edge # 二级子包,edge浏览器支持
│  │  │  options.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │
│  ├─firefox # 二级子包,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 # 二级子包,IE浏览器支持
│  │  │  options.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │
│  ├─opera # 二级子包,Opera浏览器支持
│  │  │  options.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │
│  ├─phantomjs # 二级子包,phantomjs支持,不过phantomjs项目已经废弃了
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │
│  ├─remote # 二级子包,定义了selenium操作的核心基类。
│  │  │  command.py # 定义了各类标准WebDriver命令的常量
│  │  │  errorhandler.py # 定义了WebDriver的错误代码和异常处理
│  │  │  file_detector.py # 定义了文件检测类
│  │  │  getAttribute.js 
│  │  │  isDisplayed.js
│  │  │  mobile.py # 定义了移动端的连接和上下文管理
│  │  │  remote_connection.py
│  │  │  switch_to.py # 定义了iframe切换管理
│  │  │  utils.py # 定义了json文件、压缩文件操作函数
│  │  │  webdriver.py # 定义了WebDriver操作类
│  │  │  webelement.py # 定义了元素操作类
│  │  │  __init__.py
│  │
│  ├─safari # 二级子包,Safari浏览器支持
│  │  │  permissions.py
│  │  │  remote_connection.py
│  │  │  service.py
│  │  │  webdriver.py
│  │  │  __init__.py
│  │
│  ├─support # 二级子包,定义了事件处理、事件触发、UI、超时处理等基类
│  │  │  abstract_event_listener.py # 定义了事件监听器基类
│  │  │  color.py # 定义了颜色转换支持类、方法和常量
│  │  │  events.py # 命名空间整合,导入了AbstractEventListener类和EventFiringWebDriver类
│  │  │  event_firing_webdriver.py # 定义了webdriver和WebElement事件触发类
│  │  │  expected_conditions.py # 定义了浏览器各类操作实现的验证方法
│  │  │  select.py # 定义了select控件的操作方法
│  │  │  ui.py # 命名空间整合,导入Select和WebDriverWait类
│  │  │  wait.py # 定义了webdriver的超时机制
│  │  │  __init__.py
│  │  
│  ├─webkitgtk # 二级子包,webkitgtk支持
         │  options.py
         │  service.py
         │  webdriver.py
         │  __init__.py

猜你喜欢

转载自blog.csdn.net/mighty13/article/details/114556788