一发绢、環(huán)境準(zhǔn)備
1. 安裝Python
可從Python官網(wǎng)安裝最新版,我安裝的是3.7版本吏够。
2. 安裝Selenium包
用pip命令行安裝推正,pip是一個(gè)專門安裝python包的工具,這個(gè)安裝好之后缸濒,后面安裝其它的包就非常方便了足丢。
首先安裝pip
$ sudo easy_install pip? 復(fù)制代碼
安裝好后,安裝selenium
$ sudo pip install selenium? 復(fù)制代碼
查看當(dāng)前電腦上的selenium版本和狀態(tài)
$ pip show selenium? 復(fù)制代碼
3. 選擇一個(gè)IDE
IDE就是你跑Python腳本的東東庇配,也就是編譯器斩跌,這里我選擇的是PyCharm。
JetBrains公司出品的軟件捞慌,支持Windows耀鸦,Linux,macOS啸澡,分為社區(qū)版(免費(fèi))和專業(yè)版(付費(fèi))袖订,相比社區(qū)版,專業(yè)版增加了Web開發(fā)嗅虏、Python We框架著角、Python分析器、遠(yuǎn)程開發(fā)旋恼、支持?jǐn)?shù)據(jù)庫與SQL等更多的高級(jí)功能吏口。
安裝簡(jiǎn)單,從官網(wǎng)一步一步安裝即可冰更,首次安裝有一個(gè)月的專業(yè)版體驗(yàn)产徊。
?
二、瀏覽器選擇
1. Google
需要安裝與其版本相對(duì)應(yīng)的chromedriver(劃重點(diǎn)蜀细,版本一定要對(duì)應(yīng))舟铜。
相應(yīng)版本的chromedriver下載地址http://chromedriver.storage.googleapis.com/index.html
安裝好后解壓放到/usr/local/bin/目錄下。
2. Firefox
與Google相同的步驟奠衔,下載瀏覽器和geckodriver谆刨,不過貌似Firefox對(duì)版本對(duì)應(yīng)要求不高塘娶,不需要嚴(yán)格對(duì)應(yīng)。
geckodriver下載地址https://github.com/mozilla/geckodriver/releases
三痊夭、編寫第一個(gè)自動(dòng)化腳本
1. Python File的創(chuàng)建
?
2. 編寫web的測(cè)試腳本(以下代碼為谷歌瀏覽器)
import os
from selenium import webdriver
#獲取chromedriver的路徑
chrome_driver_path = '/usr/local/bin/chromedriver'
# 創(chuàng)建谷歌瀏覽器實(shí)例
# 這里需要一個(gè)全局的driver來控制交互事件刁岸,所以需要?jiǎng)?chuàng)建一個(gè)driver代替我們操作
driver = webdriver.Chrome(chrome_driver_path)
# 隱式等待
driver.implicitly_wait(30)
# 最大化窗口
driver.maximize_window()
# 給出測(cè)試web的url 這里以百度為例
driver.get('https://www.baidu.com/')
# 找到需要控制的組件名字(稍后會(huì)講如何找)
# 這里是找到搜索框
search_field = driver.find_element_by_name('wd')
# 若原本有值 則清除
search_field.clear()
# 輸入phones 并搜索
search_field.send_keys('phones')
search_field.submit()
# 一下為耗時(shí)操作,可先不看
# currently on result page using find_elements_by_xpath method
products = driver.find_elements_by_xpath("http://h2[@class='product-name']/a")
# get the number of anchor elements found
print ('Found ' + str(len(products)) + ' products:')
# iterate through each anchor element and
# print the text that is name of the product
for product in products:
? ? print (product.text)
# 耗時(shí)操作執(zhí)行完畢后她我,關(guān)閉控制器
driver.quit()
# 這里說下退出瀏覽器的方法
# 1虹曙、close :
# 用于關(guān)閉當(dāng)前窗口,當(dāng)打開的窗口較多時(shí)番舆,就可以用close關(guān)閉部分窗口酝碳。
# 2、quit:
# 用于結(jié)束進(jìn)程 恨狈,關(guān)閉所有窗口疏哗。
# 最后結(jié)束測(cè)試,要用quit禾怠。quit可以回收C盤的臨時(shí)文件沃斤。
復(fù)制代碼
3. 查看web頁的元素名稱
這里說一個(gè)簡(jiǎn)單的,就是獲取百度搜索欄的name(上面代碼中的wd) 打開百度網(wǎng)頁刃宵,右鍵--檢查,會(huì)看到右側(cè)彈出html的代碼徘公。
鼠標(biāo)放在右側(cè)代碼上移動(dòng)可看到左側(cè)元素變藍(lán)牲证,說明此處代碼對(duì)應(yīng)的是變藍(lán)的元素,就可以找到name啦关面,這里要注意上面的form是表單坦袍,不是元素,下面的input才是搜索欄對(duì)應(yīng)的name等太。
上面如果沒有問題捂齐,運(yùn)行程序后,會(huì)自動(dòng)打開谷歌瀏覽器的頁面缩抡,進(jìn)入百度奠宜,并自動(dòng)搜索phones,幾分鐘后再自動(dòng)關(guān)閉瀏覽器瞻想。