Python+Selenium筆記(七):WebDriver和WebElement

 

(一)  WebDrivercss

WebDriver提供許多用來與瀏覽器交互的功能和設置,經過WebDriver的功能和一些方法,來實現與瀏覽器窗口、警告、框架和彈出窗口的交互,它也提供了自動化操做瀏覽器導航欄、設置cookies、截屏等方便咱們測試的特性。瀏覽器

(二)  WebDriver功能及方法cookie

功能/屬性框架

簡單說明測試

current_url網站

獲取當前頁面的URL地址(driver.current_url)
下面的都是以這種方式,driver指瀏覽器驅動實例。
window_handle
獲取當前窗口的句柄
name
獲取該實例底層的瀏覽器名稱
orientation
獲取當前設備的方位
page_source
獲取當前頁面源代碼
title
獲取當前頁面的標題
window_handles
獲取當前會話裏全部窗口的句柄

 

方法ui

簡單說明url

close()
關閉當前瀏覽器窗口
back()
後退一步
forward()
前進一步
get(url)
訪問URL並加載網頁到當前的瀏覽器會話
maximize_window()
最大化瀏覽器窗口
quit()
退出當前的驅動實例並關閉全部相關窗口
refresh()
刷新當前頁面
implicitly_wait()
等待時間,單位爲秒
set_page_load_timeout()
設置一個頁面徹底加載完成的超時等待時間,單位爲秒
set_script_timeout()
設置腳本執行的超時時間

 

(三)  WebElement功能及方法spa

    經過WebElement能夠實現與網站頁面元素的交互,包括文本框、文本域、按鈕、單選框、多選框、表格、行、列和div等。code

功能/屬性

簡單說明

size
獲取元素大小(例如element.size)
下面都是以這種方式,element指定位的某個元素
tag_name
獲取標籤的名稱
text
獲取元素的文本值

 

方法

簡單說明

clear()
清除文本框或文本域的內容
click()
點擊元素
get_attribute(name)
獲取元素的屬性值,name:要獲取的屬性名稱
is_displayed()
檢查元素對於用戶是否可見
is_enabled()
檢查元素是否可用
is_selected()
檢查元素是否被選中,主要用於單選框和複選框
send_keys(value)
輸入文本,value是要輸入的值
submit()
提交表單。若是對元素使用,將會提交該元素所屬的表單
value_of_css_property(property_name)
獲取CSS屬性的值, property_name是CSS屬性的名稱

 

(四)  操做表單、文本框、複選框、單選按鈕

經過WebElement實現與各類HTML控件的自動化交互,例如在一個文本框輸入文本、單擊按鈕、選擇單選框或者複選框、獲取元素的文本及屬性值等。

例如,博客園註冊功能的自動化:

(這裏只是舉個例子哈,直接複製是沒用的,下面的代碼只定位部分字段(郵箱、登陸名和註冊按鈕),並且沒有處理驗證碼,驗證碼部分之後再研究怎麼處理)

 1 def test_register_new_user(self):  2 
 3     #定位並點擊博客園首頁的 註冊 
 4 
 5     login_area = self.driver.find_element_by_css_selector('#login_area')  6 
 7     register = login_area.find_element_by_link_text('註冊')  8 
 9  register.click() 10 
11     #檢查打開的網頁標題是否是'用戶註冊 - 博客園'
12 
13     self.assertTrue('用戶註冊 - 博客園' == self.driver.title) 14 
15     # 定位註冊頁面各個字段及註冊按鈕
16 
17     user_email = self.driver.find_element_by_id('Email') 18 
19     user_login_name = self.driver.find_element_by_id('LoginName') 20 
21     register_btn = self.driver.find_element_by_id('submitBtn') 22 
23     # 檢查字段容許的最大輸入字符與最小輸入字符是否與預期一致
24 
25     self.assertEqual('2', user_login_name.get_attribute('data-val-length-min')) 26 
27     self.assertEqual('30', user_login_name.get_attribute('data-val-length-max')) 28 
29     # 檢查各個字段及按鈕對用戶是否可見及可用
30 
31     self.assertTrue(user_email.is_displayed() and user_email.is_enabled()) 32 
33     # 輸入用戶信息
34 
35     user_email.send_keys('test@163.com') 36 
37     user_login_name.send_keys('test') 38 
39     # 點擊註冊按鈕
40 
41  register_btn.click() 42 
43     # 檢查是否顯示註冊成功的提示
44 
45     self.assertTrue(self.driver.find_element_by_css_selector('p.txt-title.success-color').text == '註冊成功')

 

 

例如,能夠使用下面的方式檢查博客園登陸頁面的複選框是否被選中

 1 def test_login(self):  2 
 3     …省略打開登陸頁面的代碼(這段就不註釋了#
 4 
 5     automatic_login = self.driver.find_element_by_id('remember_me')  6 
 7     #檢查登陸頁面複選框,是否默認不被選中
 8 
 9  self.assertFalse(automatic_login.is_selected()) 10 
11     #點擊選中複選框
12 
13     automatic_login.click()
相關文章
相關標籤/搜索