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

      因爲網頁自動化要操做瀏覽器以及瀏覽器頁面元素,這裏筆者就將瀏覽器及頁面元素經常使用的函數及變量整理總結一下,以供讀者在編寫網頁自動化測試時查閱。css

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:用於獲取全部窗口句柄
 
函數說明:
1.driver.find_element*():定位元素,詳看另一篇博文: Selenuim+Python之元素定位總結及實例說明
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)
7.element.find_element*():定位元素,用於二次定位。個人另外一篇博文有提到: Python+Selenium定位不到元素常見緣由及解決辦法(報:NoSuchElementException)
相關文章
相關標籤/搜索