前言
Selenium 是一個用於Web網頁UI自動化測試的開源框架,可以驅動瀏覽器模擬用戶操作。在此以京東搜索加車為實例,展示下selenium+python如何模擬用戶操作,進行自動化測試。
環境搭建
MAC下selenium環境搭建可參考:https://www.cnblogs.com/mini-monkey/p/12074914.html
Windows版本環境搭建待后期更新。
啟動瀏覽器
前提:已下載安裝對應瀏覽器驅動
1,導入webdriver包
2,啟動瀏覽器
備注:
selenium目前支持的瀏覽器為:chrome、edge、Firefox、IE、Opera、Safari。
編寫京東搜索加車腳本
1,打開京東頁
京東首頁地址:https://www.jd.com/,故進入京東首頁如下:
2,打開瀏覽器開發者模式
定位元素前需先打開瀏覽器開發者模式,查看頁面源碼
例-打開chrome開發者模式:
windows:快捷鍵F12
Mac ios :快捷鍵option+command+i
3,元素定位
元素定位方法可參考:https://www.cnblogs.com/mini-monkey/p/12074940.html
一般元素id存在時,先根據id定位,其次是class、name屬性,然后再是xpath、css等去定位。優先級不一定是這樣的,小編一般習慣這樣定位,大家可以根據實際情況選擇合適的定位方式。(當一種方法無法定位到元素時,可嘗試其他方法進行定位)
京東搜索商品加車過程如下:
首頁點擊搜索框->輸入搜索關鍵詞,點擊搜索btn->點擊商品(進入商詳頁)->點擊“加入購物車”加車
實現搜索加車自動化操作可根據以上步驟展開編寫,京東搜索商品加車腳本如下(以搜索“微波爐”為例):
備注:由於頁面加載需要一定時間,可在需要等待的地方添加等待時間。
實例代碼詳情
京東搜索加車總代碼如下:
1 # 模擬京東搜索加車 2 from selenium import webdriver 3 from time import sleep 4 5 driver = webdriver.Chrome() # 啟動chrome瀏覽器 6 driver.get('https://www.jd.com/') # 打開京東 7 sleep(3) 8 9 search_ele = driver.find_element_by_id("key") # 搜索輸入框 10 search_ele.send_keys("微波爐") # 輸入關鍵詞-微波爐 11 driver.find_element_by_class_name("button").click() # 點擊搜索btn 12 sleep(3) 13 14 element = driver.find_element_by_class_name("gl-item") 15 driver.execute_script("arguments[0].scrollIntoView();", element) # 滑動至商品可見 16 sleep(2) 17 element.click() # 點擊第一個商品-進入商詳頁 18 19 windows = driver.window_handles 20 driver.switch_to.window(windows[-1]) # 切換至商詳窗口 21 driver.execute_script("window.scrollTo(0,500)") # 向下滑動500個像素 22 driver.find_element_by_id("InitCartUrl").click() # 點擊加入購物車