打個響指Selenium自動化開啓

最近鬥哥在朋友的影響下,接觸了自動化測試工具中的一個項目:appium自動化測試腳本。

appium類庫封裝了標準Selenium客戶端類庫,爲用戶提供所有常見的JSON格式selenium命令以及額外的移動設備控制相關的命令,所以在講appium類前先了解下Selenium自動化測試的使用。

其實功能測試自動化跟爬蟲一樣 ,都是要進行元素定位與操作,所以Selenium可以用來爬取數據。

0x00 Selenium簡述

Selenium 是一個用於Web應用程序測試的工具。提供了一系列簡單的API,讓我們使用Selenium WebDriver調用 WebDriver的所有功能,Selenium可以直接操作瀏覽器,就像真正的用戶在操作一樣。

0x01 Selenium 環境準備

一、語言選擇

Selenium 支持多種語言開發,如Java、Python、Ruby、PHP、C#、JavaScript等。 鬥哥這裏選擇Python。 python官網(https://www.python.org/)下載對應系統安裝包,python2版本與python3版本都支持Selenium 安裝步驟鬥哥這裏就不介紹,安裝完成後在終端輸入python看到python的安裝的版本信息。則安裝成功(未發現命令可能要手動添加安裝位置的環境變量)。

二、瀏覽器選擇

Selenium支持與多種瀏覽器交互,如Chrome、Firefox、Edge、Safari等 除了火狐瀏覽器原生支持以外,Selenium 要通過瀏覽器驅動來與瀏覽器交互。 Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads 下載Chrome驅動需要梯子,無法下載可以在下方留言瀏覽器驅動 Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10 以Chrome爲例,下載時都是32位的驅動這個不用在意,下載對應的Chrome版本就行。

下載完,將這個exe的路徑加入環境變量, 就可以根據驅動連接瀏覽器。

新手推薦火狐瀏覽器,不需要驅動。

三、 Selenium安裝

windows的python安裝包已經集成了pip可以直接使用 命令:pip install selenium 下載時指定版本爲3.14.1。

0x03 Selenium 快速入門

# -*-coding:utf-8-*-
from selenium import webdriver
driver=webdriver.Firefox()
# 打開火狐瀏覽器空白窗體
driver.get('https://www.baidu.com')
# 啓動瀏覽器並且導航到指定URL
driver.close()
# 關閉瀏覽器

此時已經控制瀏覽器,並且自動訪問百度。

0x04 Selenium 元素定位

當我們要訪問頁面某個功能,某個標籤,就需要在界面找到這些元素。selenium中有一系列以find_開頭的方法,都是用於元素定位。

通過id定位元素:
 find_element_by_id(self, id_) 
 find_elements_by_id(self, id_)  返回list
通過class定位元素:
 find_element_by_class_name(self, name) 
 find_elements_by_class_name(self, name)  返回list
通過name屬性定位元素:
 find_element_by_name(self, name) 
 find_elements_by_name(self, name)  返回list
通過標籤名定位元素:
 find_element_by_tag_name(self, name) 
 find_elements_by_tag_name(self, name)  返回list
通過鏈接文本定位元素:
 find_element_by_link_text(self, link_text) 完全匹配
 find_element_by_partial_link_text(self, link_text) 部分匹配
 通過xpath定位元素:
 find_element_by_xpath(self, xpath) 
 find_elements_by_xpath(self, xpath) 返回list
通過css選擇器定位元素:
 find_element_by_css_selector(self, css_selector) 
 find_elements_by_css_selector(self, css_selector) 返回list

先使用瀏覽器的開發者模式,或者用Firebug等插件,確定元素位置屬性,再用腳本實現。 確定了百度的輸入框位置。

就可以用方法對定位元素的位置。如:driver.find_element_by_id('kw')

0x05 Selenium 元素操作

定位完就可以對元素做操作,鼠標點擊,輸入文本。

clear(self)  清除文本輸入框
 click(self)  點擊元素
 submit(self)  提交表單
 send_keys(self, *value)  發送信息
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver=webdriver.Firefox()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('python')
#輸入
driver.find_element_by_id('kw').send_keys(Keys.ENTER)
#回車

如果運行正常,將會自動執行以下操作:打開一個火狐瀏覽器,然後打開百度首頁,在輸入框中輸入“python”然後回車。

0x06 小小總結

本期的內容就介紹到這裏啦!下期將帶來appium測試工具的使用,以及appium測試微信小程序的相關介紹。不見不散~!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章