1、selenium/commonhtml
exceptions.pyhtml5
定義了一個繼承自Exception類的WebDriverException基礎異常類,而後經過它擴展出整個selenium框架的所有異常類型定義。web
2、selenium/webdriver/commonchrome
一、actions子目錄瀏覽器
<1> 基本定義
input_device.py: 輸入設備
定義了InputDevice類,輸入設備類可以進行交互動做。
interaction.py : 交互動做
定義了交互來源: key、pointer和none。
其中,pointer有三種: mouse、touch和pen。
同時還定義了一個Pause行爲。
<2> 鍵盤(key)輸入
key_input.py
定義了鍵盤輸入設備KeyInput和按鍵行爲TypingInteraction。
key_actions.py
定義了鍵盤行爲類KeyActions。
<3> 指針(pointer)輸入
mouse_button.py
定義了鼠標類MouseButton。
pointer_input.py
定義了指針輸入設備PointerInput。
pointer_actions.py
定義了指針行爲類PointerActions。
<4> action_builder.py
定義了動做行爲構造類ActionBuilder,將行爲綁定到WebDriver對象上。緩存
二、html5子目錄服務器
pplication_cache.py網絡
定義了WebDriver的緩存操做類ApplicationCache。框架
三、當前目錄函數
<1> 公共支持
keys.py
定義了鍵盤映射類Keys。
by.py
定義了WebDriver定位元素的方式類By。
包括八種定位方法:
ID : 元素ID
XPATH : PATH路徑
XPath查詢基於瀏覽器自身的XPath引擎。
在不具有原生的XPath引擎(IE6,7,8)的瀏覽器,Selenium只支持XPath 1.0。
LINK_TEXT : 超連接文本
PARTIAL_LINK_TEXT : 部分超連接文本
NAME : 名稱
TAG_NAME : Tag標籤名稱
CLASS_NAME : class屬性名稱
CSS_SELECTOR : CSS選擇器
utils.py
定義了少數公共處理函數。
<2> WebDriver服務器
desired_capabilities.py
定義了支持的webdriver服務器的描述類型DesiredCapabilities。
proxy.py
定義了代理類型描述類ProxyType和代理功能類Proxy。
service.py
定義了webdriver服務器的進程控制類Service。
<3> 通用行爲處理
action_chains.py
定義了動做行爲接口類ActionChains,它包裝了WebDriver對象和行爲。
它提供一系列的方法,能夠執行目標WebDriver上的行爲。
touch_actions.py
定義了獨立的觸摸動做行爲接口類TouchActions。
alert.py
定義了WebDriver上警告的處理接口類Alert。
3、selenium/webdriver/remote
一、公共支持
utils.py
定義了少數數據處理方法,好比JSON和ZIP解壓縮。
command.py
定義了WebDriver API交互的命令描述類Command。
errorhandler.py
定義了WebDriver API交互時的錯誤碼描述類ErrorCode和錯誤處理類ErrorHandler。
file_detector.py
定義了一個本地文件檢查類LocalFileDetector。
在WebDriver基類中用到,參考file_detector_context上下文對象。
getAttribute.js
用於獲取元素屬性的一段內置JavaScript腳本,它被WebElement類用到。
isDisplayed.js
用於檢查元素是否在瀏覽器中顯示的JavaScript腳本,它被WebElement類用到。
二、WEB主要操做接口
webdriver.py
定義了一個WebDriver客戶端的基類WebDriver,以及所支持的WEB操做方法。
webelement.py
定義了一個WEB元素類WebElement,以及它所支持的WEB元素操做方法。
switch_to.py
定義了一個WEB當前焦點切換的功能類SwitchTo。
三、其它操做支持
mobile.py
定義了一個移動終端的基本控制類Mobile,主要對移動終端的網絡鏈接和上下文進行操做。
這個類並不直接參與WEB相關的處理,它主要操做的是移動終端自己。
remote_connection.py
定義了一個WebServer服務器的遠程管理類RemoteConnection。
WebDriver對象就是經過它來鏈接到webdriver.exe提供的服務,使用的是JsonWireProtocol協議。
全部能夠操做的命令都在RemoteConnection類進行了集成,它集成了Command類的全部命令;RemoteConnection類的execute(self, command, params)方法就是用來執行指令的。
4、selenium/webdriver/chrome
options.py
定義了Chrome瀏覽器特定的選項控制類Options。
好比瀏覽器的無頭模式、插件控制、開發人員工具等等。
service.py
定義了Chrome瀏覽器的webdriver服務器的進程控制類Service,繼承自公共的Service類。
remote_connection.py
定義類Chrome瀏覽器的webdriver服務器的遠程管理類ChromeRemoteConnection,繼承自RemoteConnection類。
webdriver.py
定義了Chrome瀏覽器的WebDriver客戶端類WebDriver,繼承自公共的WebDriver類。
它使用與Chrome相關的Options、Service和ChromeRemoteConnection。
有些瀏覽器不須要本身定義這些,而是直接使用公共的相關類。
5、selenium/webdriver/support
color.py 定義了顏色處理類Color,和Web經常使用顏色字典Colors。 events.py 從abstract_event_listener.py導入了AbstractEventListener。 從event_firing_webdriver.py導入了EventFiringWebDriver。 <1> AbstractEventListener 抽象類,用於WebDriver對象或HTML Element對象行爲的先後綁定鉤子。 鉤子函數的名稱是有規律的,在行爲函數名稱的前面加before_或after_。 <2> EventFiringWebDriver 原始的WebDriver並無行爲事件監聽功能。 對WebDriver進行包裝,包裝了AbstractEventListener子類後的WebDriver就具有了事件監聽功能。 EventFiringWebDriver和普通的WebDriver同樣,具備操做接口,只不過增長了監聽功能。 <3> EventFiringWebElement 原始的WebElement並無行爲事件監聽功能。 對WebElement進行包裝,包裝了AbstractEventListener子類後的WebElement就具有了事件監聽功能。 EventFiringWebElement和普通的WebElement同樣,具備操做接口,只不過增長了監聽功能。 ui.py 從select.py導入了Select。 從wait.py導入了WebDriverWait。 <1> Select Select對一個WebElement的包裝,包裝以後它就具有了勾選等選擇元素的操做功能。 <2> WebDriverWait 提供了一種設置交互超時和控制檢驗頻率的方法,內部須要提供一個WebDriver。 expected_conditions.py 提供了一系列指望結果的條件判斷方法,實現方式都是經過類實例的__call__方法。