三、selenium python api介紹
阿新 • • 發佈:2019-01-28
(1)更多地瞭解WebDriver和WebElement這兩個類
(2)使用WebDriver和WebElement的方法來實現包含與Web應用程式互動的測試賽
(3)使用Select類來實現下拉選單和列表的自動化操作
(4)實現JavaScript警告和瀏覽器導航欄的自動化
1.1、WebDriver原理
WebDriver提供許多用來與瀏覽器互動的功能與設定。我們可以通過使用WebDriver的功能和一些方法來實現與瀏覽器視窗、警告、框架和彈出框的互動,它也提供了自動化操作瀏覽器導航欄、設定cookies、截圖等方便我們測試的特性。
1.1.1、WebDriver功能
功能/屬性 |
描述 | 例項 |
current_url | 獲取當前頁面的URL地址 | driver.current_url |
current_window_handle | 獲取當前視窗的控制代碼 | driver.current_window_handle |
name | 獲取該例項底層的瀏覽器名稱 | driver.name |
orientation | 獲取當前裝置的方位 | driver.orientation |
page_source | 獲取當前頁面的原始碼 | driver.page_source |
title | 獲取當前頁面的標題 | driver.title |
window_handles | 獲取當前session裡所有的視窗的控制代碼 | driver,window_handles |
1.1.2、WebDriver方法
方法 | 描述 | 引數 | 例項 |
back() | 後退一步到當前會話的瀏覽器歷史記錄最後一步操作前的頁面 | driver.back() | |
close() |
關閉當前瀏覽器視窗 |
driver.close() | |
forward() |
前進一步到當前會話的瀏覽器歷史記錄中前一步操作後的頁面 |
driver.forward() | |
get(url) | 訪問目標URL並載入網頁到當前的瀏覽器會話 | url是目標網頁的網站地址 | driver.get("http://www.baidu.com") |
maximize_window() | 最大化當前瀏覽器視窗 | driver.maximize_window() | |
quit() | 退出當前driver並且關閉所有的相關視窗 |
driver.quit() |
|
refresh() | 重新整理當前頁面 | driver.refresh() | |
switch_to_active_element() | 返回當前頁面唯一焦點所在的元素或者元素體 | driver.switch_to_active_element() | |
switch_to_alert() | 把焦點切換至當前頁面彈出框 | driver.seitch_to_alert() | |
switch_to_default_content() | 切換焦點至預設框架內 | driver.switch_to_default_content() | |
switch_to_frame(frame_reference) | 通過索引、名稱和網頁元素將焦點切換到指定的框架,這種方法也適用於IFRAMES | frame_refernece:要切換的目標視窗的名稱、整數型別的索引或者要切換的目標框架的網頁元素 | driver.switch_to_frame('frame_name') |
switch_to_window(window_name) | 切換焦點到指定的視窗 |
window_name: 要切換的目標視窗的名稱或者控制代碼 |
driver.switch_to_window('main') |
implicity_wait(time_to_wait) | 超時設定等待目標元素被找到,或者目標指令執行完成。該方法在每個session只需呼叫一次,execute_async_script()的超時設定請參考set_script_timeout方法 |
time_to_wait: 等待時間(單位為秒) |
|
set_page_load_timeout(time_to_wait) | 設定一個頁面完全載入完成的超時等待時間 |
time_to_wait: 等待時間(單位為秒) |
driver.set_page_load_timeout(30) |
set_script_timeout(time_to_wait) | 設定指令碼執行的超時時間,應該在execute_async_script()丟擲錯誤之前 |
time_to_wait: 等待時間(單位為秒) |
driver.set_script_time(30) |
1.2、WebElement介面
可以通過WebElement實現與網站頁面上的元素互動。這些元素包含文字框、文字域、按鈕、單選框、多選框、表格、行、列和div等。
1.2.1、WebElement功能
功能 | 描述 | 例項 |
size | 獲取元素的大小 | element.size |
tag_name | 獲取元素的HTML標籤名稱 | element.tag_name |
text | 獲取元素的文字值 | element.text |
1.2.2、WebElement方法
方法 | 描述 | 引數 | 例項 |
clear() | 清除文字框或者文字域中的內容 | element.clear() | |
click() | 單擊元素 | element.click() | |
get_attribute(name) | 獲取元素的屬性值 | name:元素的名稱 | element.get_attribute("value") |
is_displayed() | 檢查元素對於使用者是否可見 | element.is_displayed() | |
is_enabled() | 檢查元素是否可用 | element.is_enabled() | |
is_selected() | 檢查元素是否被選中。該方法應用於複選框和單選按鈕 | element.is_selected | |
send_keys(*value) | 模擬輸入文字 | value:待輸入的字串 | element.send_keys("hyp") |
submit() | 用於提交表單。如果對一個元素應用此方法,將會提交該元素所屬的表單 | element.submit() | |
value_of_css_property (property_name) |
獲取CSS屬性的值 | property_name:CSS屬性的名稱 | element.value_of_css_property("color") |