南通做外貿(mào)的公司網(wǎng)站seo怎么弄
接下來的一段時間里我會和大家分享自動化測試相關(guān)的一些知識希望大家可以多多支持,一起進(jìn)步。
一、環(huán)境的配置
前提安裝好了python解釋器并配好了環(huán)境,并安裝好了VScode
下載的瀏覽器和瀏覽器驅(qū)動需要一樣的版本號(只看大版本)。
1、安裝瀏覽器
Chrome瀏覽器下載地址,點(diǎn)鏈接接后,根據(jù)自己的操作系統(tǒng)選擇不同的版本,windows就下載win版本的,linux就下linux版本的。推薦大家下載stable下的版本,比較穩(wěn)定,如果已經(jīng)安裝好瀏覽器的可以通過下圖查看自己的版本號。
2、安裝瀏覽器相關(guān)驅(qū)動
Chromedriver瀏覽器驅(qū)動壓縮包下載地址,安裝的驅(qū)動版本要和瀏覽器版本一致。
3、將驅(qū)動中的快捷方式添加到python解釋器路徑下
打開下載好的驅(qū)動壓縮包,解壓縮,將文件按中的chromedriver.exe文件復(fù)制到你的python安裝路徑下面。圖中是已經(jīng)完成后的截圖。
如何查看自己的python安裝路徑按住快捷鍵win+r,彈出的運(yùn)行框內(nèi)輸入cmd,然后輸入where python即可查看自己的python安裝路徑。
4、安裝selenium
打開python安裝路徑,點(diǎn)擊文件路徑欄輸入cmd按回車,然后輸入pip install selenium,指令就可以等待selenium安裝了。
安裝好后在vscode中運(yùn)行如下代碼,如果可以自動打開瀏覽器并訪問百度頁面后關(guān)閉就是所有東西準(zhǔn)備就緒了。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打開瀏覽器
driver = webdriver.Chrome()
driver.maximize_window()
# 訪問登錄頁
driver.get("https://www.baidu.com/")
time.sleep(10)
# 關(guān)閉瀏覽器
driver.quit()
二、web自動化測試五大步驟
1、導(dǎo)入包
import time
#這兩個包是必須要導(dǎo)入的
from selenium import webdriver
from selenium.webdriver.common.by import By
2、打開瀏覽器
通過webdriver創(chuàng)建一個chrome瀏覽器,并于變量driver來接收。
driver = webdriver.Chrome()
#最大化瀏覽器窗口
driver.maximize_window()
3、訪問登陸頁面
利用get方法打開你要操作的頁面。
driver.get("https://www.baidu.com/")
4、執(zhí)行相關(guān)操作
就可以執(zhí)行你要執(zhí)行的操作。先元素定位,然后調(diào)用方法就可以實現(xiàn)具體操作。
下面是一個實現(xiàn)登錄的例子。自動輸入賬號密碼驗證碼等等。
# 操作
# 用戶名
# driver.find_element(By.ID,'username').send_keys('admin')
# 通過driver.find_elements,獲取一組數(shù)據(jù),返回的是一個列表,可以用列表的索引來賦值。
driver.find_elements(By.CLASS_NAME,'login-text1')[0].send_keys('admin')
# 密碼
driver.find_elements(By.CLASS_NAME,'login-text1')[1].send_keys('HM_2023_test')
# 驗證碼0
driver.find_elements(By.CLASS_NAME,'login-text1')[2].send_keys('8888')
# 登錄按鈕
driver.find_element(By.CLASS_NAME,'login-button').click()
5、關(guān)閉瀏覽器
最后關(guān)閉并退出瀏覽器
driver.quit()
三、如何在各種路徑下導(dǎo)入自定義包
1、同級目錄下如何導(dǎo)入包
因為python一切皆對象所以只要是.py文件就可以當(dāng)作包來引用。
同級目錄下導(dǎo)入自己的包只需要import 包名,就可以導(dǎo)入自己的包,調(diào)用自己包里的方法 。
import 包名
如果只想導(dǎo)入包里的某些方法就可以from 包名 import 方法名1,方法名2
例如
from ChromDriver import getDriver,quitDriver
2、如何導(dǎo)入同級目錄的下的下級目錄的包
from 文件名.包名 import 方法名1,方法名2
例如
from tools.ChromDriver import getDriver,quitDriver
3、如何導(dǎo)入上級目錄下的下級目錄的包
如圖,longin.py里面如何引入ChromeDriver.py里面的方法呢。因為Python在導(dǎo)入包的時候,會對包所在的路徑進(jìn)行搜索,并且這個搜索是有優(yōu)先級的。
- 首先是當(dāng)前目錄:Python首先檢查當(dāng)前的工作目錄。
- 其次PYTHONPATH,這是環(huán)境變量,包含了一系列目錄路徑,Python會在此查找。
- 然后是安裝的第三方庫:Python會檢查在site-packages目錄下的第三方庫。
- 最后,Python會檢查內(nèi)置的標(biāo)準(zhǔn)庫。
這樣我們?nèi)鐖D所示的文件就完美的避開了所有的搜索,所以我們需要告訴編譯器我們導(dǎo)入包的位置用sys.path.append方法,讓編譯器在我們告訴它的目錄下搜索,這個目錄就是這兩個包的根目錄,也就是scrpits和tools的上級目錄hm_test_zidonghua??傮w的目錄層級示意圖如下
import sys
# 當(dāng)導(dǎo)入包時,一定要包含這個包的根目錄
sys.path.append(r"D:\mypython\hm_test_zidonghua")
四、利用隨機(jī)數(shù)填寫隨機(jī)的電話號碼
當(dāng)我們需要利用自動化注冊很多賬號時,我們不可以每次運(yùn)行都在代碼里改我們輸入的電話號碼,所以我們需要隨機(jī)輸入電話號碼,這就需要用到格式化輸出f表達(dá)式 (f’153{11110000,88887777}’ )該表達(dá)式{ }里面的值會直接替換字符串中的內(nèi)容起到隨機(jī)輸入電話號碼的作用 。
driver.find_elements(By.CLASS_NAME,'login-text1')[0].send_keys(f'153{11110000,88887777}')