由于網(wǎng)頁自動(dòng)化要操作瀏覽器以及瀏覽器頁面元素掖蛤,這里筆者就將瀏覽器及頁面元素常用的函數(shù)及變量整理總結(jié)一下逸尖,以供讀者在編寫網(wǎng)頁自動(dòng)化測試時(shí)查閱闺骚。
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)
其中:斜體加粗為數(shù)據(jù)(變量)梳猪。黑色加粗為方法(函數(shù))麻削,函數(shù)的調(diào)用需要加括號(hào)哦。
什么是屬性春弥?屬性就是屬于一個(gè)對象的數(shù)據(jù)或者函數(shù)的元素(內(nèi)建函數(shù)dir可查看對象屬性)呛哟,可以通過屬性據(jù)點(diǎn)標(biāo)識(shí)符來訪問。
瀏覽器屬性:
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**']
調(diào)用說明:
driver.屬性值
變量說明:
1.driver.current_url:用于獲得當(dāng)前頁面的URL
2.driver.title:用于獲取當(dāng)前頁面的標(biāo)題
3.driver.page_source:用于獲取頁面html源代碼
4.driver.current_window_handle:用于獲取當(dāng)前窗口句柄
5.driver.window_handles:用于獲取所有窗口句柄
函數(shù)說明:
1.driver.find_element*():定位元素匿沛,詳看另外一篇博文:[Selenuim+Python之元素定位總結(jié)及實(shí)例說明](http://www.cnblogs.com/yufeihlf/p/5717291.html)
2.driver.get(url):瀏覽器加載url竖共。
實(shí)例:driver.get("http//:www.baidu.com")
3.driver.forward():瀏覽器向前(點(diǎn)擊向前按鈕)。
4.driver.back():瀏覽器向后(點(diǎn)擊向后按鈕)俺祠。
5.driver.refresh():瀏覽器刷新(點(diǎn)擊刷新按鈕)公给。
6.driver.close():關(guān)閉當(dāng)前窗口,或最后打開的窗口蜘渣。
7.driver.quit():關(guān)閉所有關(guān)聯(lián)窗口淌铐,并且安全關(guān)閉session。
8.driver.maximize_window():最大化瀏覽器窗口蔫缸。
9.driver.set_window_size(寬腿准,高):設(shè)置瀏覽器窗口大小。
10.driver.get_window_size():獲取當(dāng)前窗口的長和寬拾碌。
11.driver.get_window_position():獲取當(dāng)前窗口坐標(biāo)吐葱。
12.driver.get_screenshot_as_file(filename):截取當(dāng)前窗口。
實(shí)例:driver.get_screenshot_as_file('D:/selenium/image/baidu.jpg')
13.driver.implicitly_wait(秒):隱式等待校翔,通過一定的時(shí)長等待頁面上某一元素加載完成弟跑。
若提前定位到元素,則繼續(xù)執(zhí)行防症。若超過時(shí)間未加載出孟辑,則拋出NoSuchElementException異常。
實(shí)例:driver.implicitly_wait(10) #等待10秒
14.driver.switch_to_frame(id或name屬性值):切換到新表單(同一窗口)蔫敲。若無id或?qū)傩灾邓撬裕上韧ㄟ^xpath定位到iframe,再將值傳給switch_to_frame()
15.driver.switch_to.parent_content():跳出當(dāng)前一級(jí)表單奈嘿。該方法默認(rèn)對應(yīng)于離它最近的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):調(diào)用js晚唇。
22.driver.get_cookies():獲取當(dāng)前會(huì)話所有cookie信息。
23.driver.get_cookie(cookie_name):返回字典的key為“cookie_name”的cookie信息盗似。
實(shí)例: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', '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']
調(diào)用說明:
driver.find_element*.屬性值
或
element=driver.find_element*
element.屬性值
變量說明:
1.element.size:獲取元素的尺寸心赶。
2.element.text:獲取元素的文本。
3.element.tag_name:獲取標(biāo)簽名稱缺猛。
函數(shù)說明:
1.element.clear():清除文本缨叫。
2.element.send_keys(value):輸入文字或鍵盤按鍵(需導(dǎo)入Keys模塊)。
3.element.click():單擊元素荔燎。
4.element.get_attribute(name):獲得屬性值
5.element.is_displayed():返回元素結(jié)果是否可見(True 或 False)
6.element.is_selected():返回元素結(jié)果是否被選中(True 或 False)
7.element.find_element*():定位元素耻姥,用于二次定位。我的另一篇博文有提到:[Python+Selenium定位不到元素常見原因及解決辦法(報(bào):NoSuchElementException)](http://www.cnblogs.com/yufeihlf/p/5689042.html)