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
呼叫說明:
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)