由于網(wǎng)頁自動化要操作瀏覽器以及瀏覽器頁面元素,這里筆者就將瀏覽器及頁面元素常用的函數(shù)及變量整理總結(jié)一下,以供讀者在編寫網(wǎng)頁自動化測試時查閱。
```
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)用需要加括號哦。
什么是屬性?屬性就是屬于一個對象的數(shù)據(jù)或者函數(shù)的元素(內(nèi)建函數(shù)dir可查看對象屬性),可以通過屬性據(jù)點(diǎn)標(biāo)識符來訪問。
瀏覽器屬性:
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í)例說明
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(秒):隱式等待,通過一定的時長等待頁面上某一元素加載完成。
若提前定位到元素,則繼續(xù)執(zhí)行。若超過時間未加載出,則拋出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)前一級表單。該方法默認(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)前會話所有cookie信息。
23.driver.get_cookie(cookie_name):返回字典的key為“cookie_name”的cookie信息。
實(shí)例:driver.get_cookie("NET_SessionId")
24.driver.add_cookie(cookie_dict):添加cookie?!癱ookie_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)
```