selenium源码通读·1 | 源码目录
Posted NoamaNelson
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium源码通读·1 | 源码目录相关的知识,希望对你有一定的参考价值。
·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 目录说明
- 一级目录主要涉及
common
和webdriver
:
- 其中:
# 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 | 源码目录的主要内容,如果未能解决你的问题,请参考以下文章
selenium源码通读·9 |DesiredCapabilities类分析
selenium源码通读·9 |webdriver/common/desired_capabilities.py-DesiredCapabilities类分析
selenium源码通读·2 | common/exceptions.py异常类
selenium源码通读·12 |webdriver/remote分析