Selenium學習 - 庫代碼解析

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__方法。

相關文章
相關標籤/搜索