Selenium是一個(gè)Web的自動(dòng)化測(cè)試工具,最初是為網(wǎng)站自動(dòng)化測(cè)試而開發(fā)的,Selenium 可以直接調(diào)用瀏覽器,它支持所有主流的瀏覽器(包括PhantomJS這些無界面的瀏覽器),可以接收指令,讓瀏覽器自動(dòng)加載頁面,獲取需要的數(shù)據(jù),甚至頁面截屏等。我們可以使用selenium很容易完成之前編寫的爬蟲,接下來我們就來看一下selenium的運(yùn)行效果
一.安裝環(huán)境
python+selenium+chrome
(1)python建議用python3及以上的版本
(2)selenium庫這邊我們使用pip接口進(jìn)行安裝
pip install selenium
pip接口詳細(xì)說明可以看:https://blog.csdn.net/pengneng123/article/details/129556320
(3)這邊推薦使用chrome瀏覽器,使用chrome瀏覽器則需要對(duì)應(yīng)的驅(qū)動(dòng),下載鏈接如下:
http://chromedriver.storage.googleapis.com/index.html
找到與瀏覽器相對(duì)應(yīng)的版本,32位即可驅(qū)動(dòng)。
二.selenium庫基礎(chǔ)函數(shù)使用
1.webdriver.Chrome()
from selenium import webdriver
####實(shí)例化瀏覽器
driver = webdriver.Chrome()
輸出如下:
2.driver.get()? 函數(shù)打開網(wǎng)頁包含協(xié)議頭
driver.get('https://www.baidu.com/')
3.driver.maximize_window() 函數(shù)實(shí)現(xiàn)最大化瀏覽器
4.driver.back() 函數(shù)實(shí)現(xiàn)后退操作
5.driver.forward() 函數(shù)實(shí)現(xiàn)前進(jìn)操作
6.driver.refrensh() 函數(shù)實(shí)現(xiàn)刷新頁面功能
7.driver.close() 函數(shù)實(shí)現(xiàn)關(guān)閉當(dāng)前主窗口(主窗口:默認(rèn)啟動(dòng)那個(gè)界面,就是主窗口)
8.driver.quit() 函數(shù)實(shí)現(xiàn)關(guān)閉driver對(duì)象啟動(dòng)的全部頁面
9.driver.title 函數(shù)獲取當(dāng)前頁面title信息
10.driver.current_url 函數(shù)獲取當(dāng)前頁面url信息
三.selenium庫定位八大方法
1.id定位方法
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() ###實(shí)例化瀏覽器
driver.get('https://www.baidu.com/') ###get打開瀏覽器
element = driver.find_element(By.ID, "kw").send_keys('搜索') ###id定位方法,kw=id, 搜索為輸入
?輸出:
2.name定位方法
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
###name定位方法 name='wd',1111為輸入的內(nèi)容
username = driver.find_element(By.NAME, 'wd').send_keys('1111')
?輸出:
3.class_name定位方法
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
###class_name定位方法,class = 's_ipt',輸入123456
Class = driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('123456')
?
輸出:
4.tag_name定位方法
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
###
tel = driver.find_element(By.TAG_NAME, 'input').send_keys('1111')
?一般標(biāo)簽重復(fù)性過高,要精確定位,都不會(huì)選擇tag_name !
5.link_text定位方法,click單擊打開
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
###該?法只針對(duì)超鏈接元素(a 標(biāo)簽),并且需要輸入超鏈接的全部?本信息
Text = driver.find_element(By.LINK_TEXT, '新聞').click()#
輸出:
6.partial_link_text定位方法
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
###partial_link_text定位方法,click單擊打開,可以使用精準(zhǔn)或模糊匹配
username = driver.find_element(By.PARTIAL_LINK_TEXT, '新聞').click()
7.Xpath定位方法
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
###Xpath定位方法,稱為相對(duì)路徑定位法,運(yùn)用copy xpath復(fù)制相對(duì)路徑
username = driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys('1111')
?輸出:
8.CSS定位法
常用策略:
1、id 選擇器
??? ?語法:#id屬性值
2、class 選擇器
??? ?語法:.class屬性值(如果使?具有多個(gè)值的 class 屬性,則需要傳入全部的屬性值 語法:[class="全部屬性值"])
3、屬性選擇器
??? ?語法1:[屬性名=“屬性值”]
??? ?語法2:標(biāo)簽名[屬性名=“屬性值”]
4、標(biāo)簽選擇器
??? ?語法:標(biāo)簽名 如input,button
5、層級(jí)選擇器
??? ?父子層級(jí)關(guān)系:父層級(jí)策略 > 子層級(jí)策略 (也可以使用空格連接上下層級(jí)策略)
??? ?祖輩后代層級(jí)關(guān)系:祖輩策略 后代策略
??? ?提示:>與空格的區(qū)別,大于號(hào)必須為子元素,空格則不用。
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
###id屬性值
ID = driver.find_element(By.CSS_SELECTOR, '#kw"]').send_keys('11111')
###class屬性值
Class = driver.find_element_by_css_selector('[class="s_ipt"]').send_keys('1111')
###語法屬性
user = driver.find_element_by_css_selector('input[id="kw"]').send_keys('1111')
user = driver.find_element_by_css_selector('[name="wd"]').send_keys('1111')
###語法層級(jí)選擇屬性
user = driver.find_element_by_css_selector('#s_kw_wrap>input').send_keys('1111')
user = driver.find_element_by_css_selector('#form input').send_keys('1111')
driver.close()
?八大定位方法就如上所述。
四.實(shí)例演示
1.元素的操作方法
(1)、.send_keys() # 輸入方法
(2)、.click() # 點(diǎn)擊方法
(3)、.clear() # 清空方法
2.實(shí)際操作
(1)進(jìn)入百度搜索(2)搜索欄輸入python(3)百度一下(3)選擇python百度百科進(jìn)入
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
###進(jìn)入百度搜索
driver.get('https://www.baidu.com/')
###找到輸入框,輸入python
element = driver.find_element(By.ID, "kw").send_keys('python')
###單擊鼠標(biāo)開始搜索
element = driver.find_element(By.ID, "su").click()
###找到百度百科,單擊鼠標(biāo)進(jìn)入
username = driver.find_element(By.XPATH, '//*[@id="2"]/div/div/h3/a').click()
后續(xù)對(duì)于selenium庫的更多使用,下期再繼續(xù)介紹啦!文章來源:http://www.zghlxwxcb.cn/news/detail-742301.html
@Neng文章來源地址http://www.zghlxwxcb.cn/news/detail-742301.html
到了這里,關(guān)于【python】之selenium模塊,實(shí)現(xiàn)Web端自動(dòng)化測(cè)試!【基礎(chǔ)篇】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!