1. 程式人生 > >Python+Selenium WebDriver API:瀏覽器及元素的常用函式及變數整理總結

Python+Selenium WebDriver API:瀏覽器及元素的常用函式及變數整理總結

      由於網頁自動化要操作瀏覽器以及瀏覽器頁面元素,這裡筆者就將瀏覽器及頁面元素常用的函式及變數整理總結一下,以供讀者在編寫網頁自動化測試時查閱。

from selenium import webdriver 
driver=webdriver.Firefox() 
driver.get(r'http://www.baidu.com/') 
print(driver attributes:) 
print(dir(driver)) 
elem=driver.find_element_by_id('kw') 
print(WebElement attributes:' print dir(elem))

其中:紅色加粗為資料(變數)。黑色加粗為方法(函式),函式的呼叫需要加括號哦。 

什麼是屬性?屬性就是屬於一個物件的資料或者函式的元素(內建函式dir可檢視物件屬性),可以通過屬性據點識別符號來訪問。

瀏覽器屬性:

driver attributes:

['NATIVE_EVENTS_ALLOWED', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_file_detector', '_is_remote', '_mobile', '_switch_to', '_unwrap_value', '_wrap_value', 'add_cookie

', 'application_cache', 'back', 'binary', 'capabilities', 'close', 'command_executor', 'create_web_element', 'current_url', 'current_window_handle', 'delete_all_cookies', 'delete_cookie', 'desired_capabilities', 'error_handler', 'execute', 'execute_async_script', 'execute_script', 'file_detector', 'find_element', 'find_element_by_class_name', 'find_element_by_css_selector', 'find_element_by_id', 'find_element_by_link_text', 'find_element_by_name', 'find_element_by_partial_link_text', 'find_element_by_tag_name', 'find_element_by_xpath', 'find_elements', 'find_elements_by_class_name', 'find_elements_by_css_selector', 'find_elements_by_id', 'find_elements_by_link_text', 'find_elements_by_name', 'find_elements_by_partial_link_text', 'find_elements_by_tag_name', 'find_elements_by_xpath'
, 'firefox_profile', 'forward', 'get', 'get_cookie', 'get_cookies', 'get_log', 'get_screenshot_as_base64', 'get_screenshot_as_file', 'get_screenshot_as_png', 'get_window_position', 'get_window_size', 'implicitly_wait', 'log_types', 'maximize_window', 'mobile', 'name', 'orientation', 'page_source', 'profile', 'quit', 'refresh', 'save_screenshot', 'session_id', 'set_page_load_timeout', 'set_script_timeout', 'set_window_position', 'set_window_size', 'start_client', 'start_session', 'stop_client', 'switch_to', 'switch_to_active_element', 'switch_to_alert', 'switch_to_default_content', 'switch_to_frame', 'switch_to_window', 'title', 'w3c', 'window_handles']

呼叫說明:

driver.屬性值

變數說明:

1.driver.current_url:用於獲得當前頁面的URL

2.driver.title:用於獲取當前頁面的標題

3.driver.page_source:用於獲取頁面html原始碼

4.driver.current_window_handle:用於獲取當前視窗控制代碼

5.driver.window_handles:用於獲取所有視窗控制代碼

函式說明:

2.driver.get(url):瀏覽器載入url。

例項:driver.get("http//:www.baidu.com")

3.driver.forward():瀏覽器向前(點擊向前按鈕)。

4.driver.back():瀏覽器向後(點擊向後按鈕)。

5.driver.refresh():瀏覽器重新整理(點選重新整理按鈕)。

6.driver.close():關閉當前視窗,或最後開啟的視窗。

7.driver.quit():關閉所有關聯視窗,並且安全關閉session。

8.driver.maximize_window():最大化瀏覽器視窗。

9.driver.set_window_size(寬,高):設定瀏覽器視窗大小。

10.driver.get_window_size():獲取當前視窗的長和寬。

11.driver.get_window_position():獲取當前視窗座標。

12.driver.get_screenshot_as_file(filename):擷取當前視窗。

例項:driver.get_screenshot_as_file('D:/selenium/image/baidu.jpg')

13.driver.implicitly_wait(秒):隱式等待,通過一定的時長等待頁面上某一元素載入完成。

若提前定位到元素,則繼續執行。若超過時間未加載出,則丟擲NoSuchElementException異常。

例項:driver.implicitly_wait(10) #等待10秒

14.driver.switch_to_frame(id或name屬性值):切換到新表單(同一視窗)。若無id或屬性值,可先通過xpath定位到iframe,再將值傳給switch_to_frame()

15.driver.switch_to.parent_content():跳出當前一級表單。該方法預設對應於離它最近的switch_to.frame()方法。

16.driver.switch_to.default_content():跳回最外層的頁面。

17.driver.switch_to_window(視窗控制代碼):切換到新視窗。

18.driver.switch_to.window(視窗控制代碼):切換到新視窗。

19.driver.switch_to_alert():警告框處理。處理JavaScript所生成的alert,confirm,prompt.

20.driver.switch_to.alert():警告框處理。

21.driver.execute_script(js):呼叫js。

22.driver.get_cookies():獲取當前會話所有cookie資訊。

23.driver.get_cookie(cookie_name):返回字典的key為“cookie_name”的cookie資訊。

例項:driver.get_cookie("NET_SessionId")

24.driver.add_cookie(cookie_dict):新增cookie。“cookie_dict”指字典物件,必須有name和value值。

25.driver.delete_cookie(name,optionsString):刪除cookie資訊。

26.driver.delete_all_cookies():刪除所有cookie資訊。

頁面元素屬性:

WebElement attributes:

['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_execute', '_id', '_parent', '_upload', '_w3c', 'clear', 'click', 'find_element', 'find_element_by_class_name', 'find_element_by_css_selector', 'find_element_by_id', 'find_element_by_link_text', 'find_element_by_name', 'find_element_by_partial_link_text', 'find_element_by_tag_name', 'find_element_by_xpath', 'find_elements', 'find_elements_by_class_name', 'find_elements_by_css_selector', 'find_elements_by_id', 'find_elements_by_link_text', 'find_elements_by_name', 'find_elements_by_partial_link_text', 'find_elements_by_tag_name', 'find_elements_by_xpath', 'get_attribute', 'id', 'is_displayed', 'is_enabled', 'is_selected', 'location', 'location_once_scrolled_into_view', 'parent', 'rect', 'screenshot', 'screenshot_as_base64', 'screenshot_as_png', 'send_keys', 'size', 'submit', 'tag_name', 'text', 'value_of_css_property']

呼叫說明:

driver.find_element*.屬性值

element=driver.find_element*

element.屬性值

變數說明:

1.element.size:獲取元素的尺寸。

2.element.text:獲取元素的文字。

3.element.tag_name:獲取標籤名稱。

函式說明:

1.element.clear():清除文字。

2.element.send_keys(value):輸入文字或鍵盤按鍵(需匯入Keys模組)。

3.element.click():單擊元素。

4.element.get_attribute(name):獲得屬性值

5.element.is_displayed():返回元素結果是否可見(True 或 False)

6.element.is_selected():返回元素結果是否被選中(True 或 False)