1. Windows下測試環(huán)境搭建
- 安裝python(截止目前最新版本Python3.5)
https://www.Python.org/ - 安裝Selenium最新Python安裝包中已經(jīng)集成pip
Pip install Selenium - 查看當(dāng)前包的版本信息
Pip show selenium - 啟動未默認(rèn)安裝的Firefox
From selenium webdriver.firefox.firefox_binary import FirefoxBinary
Binary = FirefoxBinary(r’火狐安裝路徑’)
Driver = webdriver.Firefox(firefox_binary=binary) - 啟動chrome、IE瀏覽器需要驅(qū)動Chromedriver、 IEdriver】髁撸可以將chromedriver.exe 放在”C:\Windows\System32”路徑下或者path可以找到的路徑下并重啟電腦即可.
2. WebDriver API
1.webdriver提供了八種元素定位方法:
- id:HTML規(guī)定id屬性在HTML文檔中必須是唯一的粗卜,find_element_by_id()方法通過id屬性定位元素旨别;
- name:HTML中name來指定元素的名稱锄贷,name屬性值當(dāng)前頁面中可以不唯一,find_element_by_name()方法通過name屬性來定位元素旭斥;
- class:HTML規(guī)定class來指定元素的類名,find_element_by_class_name()方法通過class屬性來定位元素古涧;
- tag:find_element_by_tag_name()方法通過元素的tag name來定位元素垂券;
- link定位:用來定位文本鏈接,find_element_by_link_text()方法通過元素標(biāo)簽對直接的文本信息來定位元素羡滑;
- partial link:對link定位的一種補(bǔ)充菇爪,有些文本鏈接比較長,可以取文本鏈接的一部分定位柒昏,只要這部分信息可以唯一標(biāo)識這個鏈接凳宙,find_element_by_partial_link_text()方法通過元素標(biāo)簽對之間的部分文本信息來定位元素;
- xpath:find_element_by_xpath()方法使用xpath語言來定位元素职祷,xpath主要用標(biāo)簽名的層級關(guān)系來定位元素的絕對路徑氏涩,最外層為html語言。find_element_by_xpath(“//input[@id=’kw’]”) //表示當(dāng)前頁面某個目錄下有梆,input表示定位元素的標(biāo)簽名是尖,[@id=’kw’]表示這個元素的id屬性值等于kw。
- CSS定位:find_element_by_css_selector()方法用于CSS語言定位元素泥耀;
2. 控制瀏覽器窗口大小
Webdriver提供set_window_size(x, y)方法來設(shè)置瀏覽器大薪刃凇; maximize_window()方法使打開的瀏覽器全屏顯示爆袍,不需要參數(shù)首繁。
3. Webdriver中最常用的方法:
- Clear():用于清除文本輸入框中的內(nèi)容作郭。
- Send_keys(*value):模擬鍵盤向輸入框里輸入內(nèi)容。
- Click():用來單擊一個元素弦疮。
4. Webelement接口常用方法
- Submit():用于提交表單夹攒。
- Size:返回元素的尺寸;
- Text:獲取元素的文本胁塞;
- Get_attribute(name):獲取屬性值
- Is_displayed():設(shè)置該元素是否用戶可見咏尝。
5. 鼠標(biāo)事件鼠標(biāo)操作的方法封裝在ActionChains類提供;
- Perform():執(zhí)行所有ActionChains中存儲的行為啸罢;
- Context_click():右擊编检;
- Double_click():雙擊;
- Drag_and_drop(source, target):拖動扰才;
- Move_to_element():鼠標(biāo)懸停允懂。
6. 多表單切換
Switch_to_frame()默認(rèn)可以直接取表單的id或name屬性。
如果完成了在當(dāng)前表單上的操作衩匣,則switch_to.parent_content()方法跳出當(dāng)前一級表單蕾总。
在進(jìn)入多級表單情況下,通過switch_to.default_content()跳回最外層的頁面琅捏。
7. 多窗口切換
Switch_to.window()生百,可以實現(xiàn)在不同的窗口之間切換
8. 警告框處理
- Text:返回alert/confirm/prompt中的文字信息;
- Accept():接受現(xiàn)有警告框柄延;
- Dismiss():解散現(xiàn)有警告框蚀浆;
- Send_keys(KeysToSend):發(fā)送文本至警告框,keystosend:將文本發(fā)送至警告框搜吧。
Switch_to_alert()方法接受彈窗市俊。
9. 操作Cookie
- Get_cookies():獲得所有cookie信息;
- Get_cookie(name):返回字典的key為“name”的cookie信息赎败;
- Add_cookie(cookie_dict):添加cookie秕衙。”cookie_dict”指字典對像僵刮,必須有name和value值据忘;- Delete_cookie(name, optionsString):刪除cookie信息「愀猓”name”是要刪除的cookie的名字勇吊,”optionsString”是該cookie的選項,支持選項包括”路徑”窍仰,”域”汉规。
- Delete_all_cookies():刪除所有cookie信息。
10. 窗口截圖
Get_screenshot_as_file()函數(shù)來截取當(dāng)前窗口。