在開始這部分課程以前,咱們須要一個附件網頁用來演示如下操做:
請下載如下附件,保存到到電腦某個位置: html
若是咱們按照用戶的操做來上傳文件,步驟會很是繁瑣,並且操做系統的文件夾操做須要另外一個庫AutoItLibrary的支持,來對操做系統窗口定位和操做,很是麻煩。
這裏咱們有一個更好的選擇,分析上傳文件按鍵的html代碼,它實質上是一個<input>
元素。
前端
那麼咱們能夠直接對它input text
,輸入的文本就是文件的路徑。
python
須要注意的是:在Python或Java中的路徑表達式中,windows的
\
要被替換爲\\
或者/
。
由於Java或Python中,\
是轉義字符,單\
毫無心義 windows
咱們在訪問網站的時候,有時會忽然彈出一個小窗口,上面寫着一段提示信息文字。若是你不點擊「肯定」,就不能對網頁作任何操做,這個小窗口就是使用alert實現的。
這個alert的彈出由前端的JS語句決定,可是彈出框自己卻不是網頁代碼的一部分,而是由瀏覽器彈出,因此咱們沒法對這個彈出框進行定位和直接Click操做。
瀏覽器
SeleniumLibrary這裏可使用Handle Alert
關鍵字來處理 網站
做用:處理alert彈出框 參數:兩個可選參數action和timeout,action默認爲ACCEPT,timeout默認爲None
ACCEPT:接受alert警告,至關於點擊OK或肯定
DISMISS:取消alert警告,至關於點擊Cancel或取消
LEAVE:離開alert警告,保持alert爲打開 ui
timeout設置等待alert彈出的時間,若是不單獨設置,會使用全局的timeout設置
此關鍵字是seleniumLibrary3.0新出現的,取代之前的Choose XXX On Next Confirmation
Alert彈出框有三種分別是alert(只有肯定鍵),confirm(有肯定和取消兩個按鍵),prompt(除開兩個按鍵還有一個輸入框)編碼
下拉菜單在網頁中是<select>
元素 spa
下拉菜單未展開的時候,菜單中的選項沒法click,咱們操做下拉菜單有兩種方式:
一種是模擬用戶的操做,先click下拉菜單,再click展開的菜單選項
另外一種就是使用seleniumLibrary提供的關鍵字來操做下拉菜單:
Select From List By Index
-- index:<option>
選項的index索引值,注意第一項從0開始
Select From List By Label
-- lable:<option>
選項中對應文本值
Select From List By Value
-- value:<option>
選項中對應value屬性值 操作系統
注意:若是是單選下拉菜單,多於一項有相同值時,最後一項將被選中
若是是多選下拉菜單,多於一項有相同值時,多項將被選中,可是可能以前選中的選項不會被清除
單選框RadioBox的操做比較簡單,直接按照用戶邏輯,要選哪項直接click就能夠了
複選框CheckBox的操做稍微麻煩一點,麻煩不在點擊動做自己,而是複選框是能夠取消點擊的。
第一次點擊是選中,第二次點擊是取消,因此在點擊以前最好肯定被點擊的選項是否已經被選中。
在網頁操做中有時會遇到須要翻頁,或者發送鍵盤按鍵,這時就須要用到關鍵字:
Press Key
做用:對定位元素模擬用戶按鍵
參數:兩個必選參數locator定位符和key按鍵
key:按鍵能夠是一個字母、或者\開始的按鍵的ASCII碼值
若是是對整個網頁模擬按鍵,建議使用根元素xpath:/html
\ue0f是python中pageDown下翻頁按鍵碼值的unicode編碼,其它按鍵的編碼參考下圖:
frame和iframe都是網頁的內嵌網頁,當咱們遇到某些元素位於frame或者iframe時,若是不對操做的當前頁面進行切換,講沒法操做這些元素。
例如這個網站: https://www.layui.com/admin/std/dist/views/
在這個頁面中,若是咱們要操做右側的元素,必須先將內嵌的iframe切換爲當前頁面,不然沒法點擊。
這裏咱們須要用到一個關鍵字:
做用:切換定位符定位的頁面爲當前頁面
參數:一個必選參數,frame的定位符
可是,若是這時咱們又要操做左側面板的元素,會發現又不能操做了,這是由於咱們的操做當前頁面是右側頁面,這時咱們須要把當前頁面切換回主頁面
做用:切換主頁面爲當前頁面
無參數
注意切換網頁要分析網頁結構,使用select frame只能往當前網頁的下級頁面切換,因此往上或者往平級的頁面切換必須先unselect frame
當咱們點擊連接彈出一個新的瀏覽器窗口時,咱們在新的瀏覽器窗口操做須要手動切換瀏覽器窗口。
做用:切換瀏覽器窗口到定位符匹配的窗口
參數:一個參數locator默認爲MAIN
返回值:前一個窗口的handle
若是定位的窗口被找到,全部隨後的操做將基於這個新定位的窗口,直到這個關鍵字再次被調用。
若是定位的窗口找不到,這個關鍵字失敗,前一個窗口的handle已被返回,能夠用來返回前一個窗口。
窗口的定位策略:
- 默認狀況下,窗口定位符匹配窗口的handle,name,title,URL
,匹配會按照這個順序匹配第一個符合的窗口。
- 窗口定位符能夠具體使用顯式的定位策略,使用格式: strategy:value
(推薦) or strategy=value
支持的策略有:name,title和URL
。
- 定位符爲NEW
,最後一個打開的窗口被切換。若是與當前窗口相同將會報錯。
- 定位符爲MAIN
,主窗口被選中。
- 定位符爲CURRENT
,沒什麼做用,只是返回當前窗口的的handle。
- 定位符不是一個字符串時,必須是一個被排除的窗口handle list。這個list應該是以前使用Get Window Handles
獲取的。
這裏使用http://news.baidu.com/,點擊第一個到第四個新聞連接,來作一個切換窗口的演示。
strategy:value
參數只在seleniumLibrary3.0或以後版本支持 以前版本支持的別名:None,Null
和空字符串用來切換主窗口,和別名selft
切換當前窗口,在3.0版本都過期了
在3.0以前版本匹配窗口的name,title和URL
曾是大小寫敏感的
原文出處:https://www.cnblogs.com/jeknight/p/11270585.html