Selenium Part2: WebDriverAPI 的使用

暴躁的熱心網友皮皮文發表於2018-05-07

Selenium Part2: WebDriverAPI  的使用
一.元素定位

上一節的簡單小指令碼,解釋一下。 畫藍線的部分到底是什麼意思呢?

我們要完成的動作是

1.登陸有道網站

2在單詞輸入框中輸入要查詢的內容

3.單擊查詢button

4.成功跳轉顯示頁面後,退出瀏覽器

登陸一定可以看明白,但是下面的藍線部分是什麼意思呢,因為輸入框還有搜尋的button都是在前端框架中的,所以說我們可以通過前端框架中的程式碼中的元素來定位到我們需要使用的部分然後完成模擬互動。

不是很懂前端框架但是想要定位一個元素就必須給出足夠多的資訊和唯一的元素內容,就像是該元素的GUID。我是真不懂前端的東西,但是我會用,來跟我學。

開發者模式大家一定不陌生如下:

Selenium Part2: WebDriverAPI  的使用

如圖,就把程式碼以明文展示出來。

在檢視器的左邊有一個小滑鼠箭頭!!!看到這裡難免有些興奮因為好像我們就是需要這個東西模擬定位定位到我們需要的元素位置,要不這麼多程式碼,肉眼檢索的話...

Selenium Part2: WebDriverAPI  的使用

1.上方紅線區域就是我們要模擬的使用者行為區域,所以用剛才的模式點選即可跳轉到下方紅框區域的藍色程式碼。

2.然後呢,發現這個藍色程式碼裡面有好多內容但是好像有一個叫ID的!對了,ID就是一種可以辨識元素的屬性。

3.在使用剛才的方法定位翻譯button,這回心態崩了,只寫個tab標籤名稱怎麼辦這怎麼辨識區別呢,用最簡單粗暴的!!!xpath--右擊複製--Xpath。

4.準備工作已經完成。

Selenium Part2: WebDriverAPI  的使用

PS:另外元素定位有八種,但是可以定位到就可以了(定位唯一元素成功)

id定位

name 定位

class定位

tag定位

link定位

partial link定位

Xpath定位

CSS定位

還有使用By句式的,但是效果跟前八種一樣,可以自行百度。

Xpath就是絕對路徑,所以找到了一個網頁元素的絕對路徑這一種方法會用就可以了。

python程式碼中這樣寫就可以了

find_element_by_XXX("YYY") XXX表示八種中的任意一種定位方法或者組合,YYY為定位的屬性名稱。指令碼中的send_keys("")就是在模擬輸入內容 click()就是模擬單擊。

這下應該清楚了。

我有個大膽的想法,去這樣操作一波1024然後把XXX的高清無碼全部嘻嘻嘻爬下來,這樣不到一個月我就可以進醫院了。

二.控制瀏覽器

來 享受一下遙控的X感,可以控制視窗大小,前進後退重新整理,關閉開啟 清除文字......

Selenium Part2: WebDriverAPI  的使用

執行,成功。

三.奴役完瀏覽器,來繼續奴役滑鼠

之前用到的click()就是模擬的滑鼠左鍵單擊的行為,在webdriver中,將這些關於滑鼠的操作的方法封裝在ActionChains類中。

ActionChains常用方法:

·perform() 執行所有ActionChains中儲存的行為;

·context_click() 右擊;

Selenium Part2: WebDriverAPI  的使用

·double_click() 雙擊;

類似於上面

·drag_and_drop(source,target) 拖動;

source:滑鼠拖動的源元素 target:滑鼠釋放的目標元素

·move_to_element():滑鼠懸停;

四.奴役鍵盤 鍵盤操作:

send_keys(Keys.BACK_SPACE)刪除鍵 send_keys(Keys.SPACE)空格鍵 send_keys(Keys.TAB)製表鍵等等

相關文章