中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

diy做網(wǎng)站搜索關(guān)鍵詞的工具

diy做網(wǎng)站,搜索關(guān)鍵詞的工具,手機(jī)如何復(fù)制網(wǎng)站模板,可以自己企業(yè)網(wǎng)站制作本文是基于Pytest框架,讀取excel中的文件,傳入頁面表單中,并做相應(yīng)的斷言實(shí)現(xiàn)。 1、編輯媒體需求 首先明確一下需求,我們需要對媒體的表單數(shù)據(jù)進(jìn)行編輯,步驟如下: 具體表單如下圖所示 1、登錄 2、點(diǎn)擊我…

本文是基于Pytest框架,讀取excel中的文件,傳入頁面表單中,并做相應(yīng)的斷言實(shí)現(xiàn)。

1、編輯媒體需求

首先明確一下需求,我們需要對媒體的表單數(shù)據(jù)進(jìn)行編輯,步驟如下:

具體表單如下圖所示

1、登錄

2、點(diǎn)擊我的媒體

3、點(diǎn)擊媒體

4、點(diǎn)擊編輯媒體

5、設(shè)置標(biāo)題

6、設(shè)置媒體標(biāo)題分類

7、設(shè)置標(biāo)簽001

8、設(shè)置產(chǎn)生日期

9、上傳圖片

10、描述

11、狀態(tài)

12、啟動評論

13、縮略圖時刻

14、允許下載

然后點(diǎn)擊"Update Media"后,就會跳轉(zhuǎn)到這個媒體的界面上??梢圆榭刺峤坏呐渲檬欠裆А?/p>

2、編輯媒體V1.0

第一版先定位到元素并手工實(shí)現(xiàn)。

2.1 登錄

2.1.1??conftest.py配置

首先在conftest.py做好公共方法的配置工作,也就是登錄退出等一些常用的方法。

conftest.配置特點(diǎn)

conftest.py配置腳本名稱是固定的,不能改名稱

conftest.py與運(yùn)行的用例要在同一個package下,并且有————init__.py文件

測試用例文件不需要import conftest.py就能自動找到配置好的@pytest.fixture

import timeimport pytest
from selenium import webdriver@pytest.fixture(scope='session')
def driver():driver=webdriver.Firefox()driver.maximize_window()driver.implicitly_wait(10)yield drivertime.sleep(10)   # 如果需要觀察程序運(yùn)行過程,那么加時間等待;代碼調(diào)試彎沉后,去掉時間等待。# driver.quit()@pytest.fixture(scope='session')
def login(driver):driver.get("https://svr-6-9010.share.51env.net/accounts/login/")# 3、輸入用戶名driver.find_element_by_id("id_login").send_keys("changcheng1211")# 4、輸入密碼driver.find_element_by_id("id_password").send_keys("changcheng1211")driver.find_element_by_id("id_captcha_1").send_keys("changcheng1211")# 5、點(diǎn)擊登錄driver.find_element_by_class_name("primaryAction").submit()yield driver

介紹一下

Pytest Fixture

作用

為每個測試用例完成一些公共的前置或者后置工作

限制范圍

scope="function"每個方法調(diào)用一次

scope="class"每個類調(diào)用一次

scope="module"每一個.py文件調(diào)用一次

scope="session"多個.py文件只調(diào)用一次

用法

import pytest

打開瀏覽器? def driver():

登錄功能? ?def login():

2.1.12 pytest之全局配置文件pytest.ini

[pytest]
addopts = -s -v
testpaths = test_cases/test_update_media.py

-s:表示輸出調(diào)試信息,用于顯示測試函數(shù)中print()打印的信息

-v:未加前只打印模塊名,加v后打印類名、模塊名、方法名,顯示更詳細(xì)的信息

-q:表示只顯示整體測試結(jié)果

-vs:這兩個參數(shù)可以一起使用

-n:支持多線程或者分布式運(yùn)行測試用例(前提需安裝:pytest-xdist插件)

–html:生成html的測試報告(前提需安裝:pytest-html插件) 如:pytest -vs --html ./reports/result.html

testpaths 是指定執(zhí)行的路徑的。

2.2? 編輯媒體test_update_media.py

首先在測試的目錄下新建一個測試文件test_update_media.py,D:\python\autoFuncTest2\test_cases\test_update_media.py

from selenium.webdriver.support.select import Selectclass TestUpDateMedia:def test_update_meida(self,login):# 1、登錄# 2、點(diǎn)擊我的媒體login.find_element_by_partial_link_text('我的媒體').click()# 3、點(diǎn)擊媒體login.find_element_by_class_name('item-thumb').click()# 4、點(diǎn)擊編輯媒體login.find_element_by_link_text('編輯媒體').click()# 5、設(shè)置標(biāo)題login.find_element_by_id('id_title').clear()login.find_element_by_id('id_title').send_keys('小猴子.MP4')# 6、設(shè)置媒體標(biāo)題分類id_category = login.find_element_by_id('id_category')# 如果用ctrl鍵,可以多選,用click()方法不能多選。# Selenium給我們提供了一種方法 select_by_visible_text('Film')  可以多選select_category = Select(id_category)select_category.select_by_visible_text('Film')select_category.select_by_index(0)  # Artselect_category.select_by_value('2') # Documentary# 7、設(shè)置標(biāo)簽001id_new_tags = login.find_element_by_id('id_new_tags')id_new_tags.clear()id_new_tags.send_keys('001')# 8、設(shè)置產(chǎn)生日期id_add_date = login.find_element_by_id('id_add_date')id_add_date.clear()id_add_date.send_keys('2000/06/04 20:49')# 9、上傳圖片login.find_element_by_id('id_uploaded_poster').send_keys('D:\\niupeng2.png')# 10、描述id_description = login.find_element_by_id('id_description')id_description.clear()id_description.send_keys('今天我們?nèi)游飯@,參觀了小猴子')# 11、狀態(tài)id_state = login.find_element_by_id('id_state')Select(id_state).select_by_visible_text('私有')# 12、啟動評論login.find_element_by_id('id_enable_comments').click()# 13、縮略圖時刻id_thumbnail_time = login.find_element_by_id('id_thumbnail_time')id_thumbnail_time.clear()id_thumbnail_time.send_keys('50')# 14、允許下載login.find_element_by_id('id_allow_download').click()# 15、點(diǎn)擊Update Medialogin.find_element_by_class_name('primaryAction').submit()

下面介紹一下代碼的實(shí)現(xiàn)

from selenium.webdriver.support.select import Selectclass TestUpDateMedia:def test_update_meida(self,login):

首先導(dǎo)入一個Select的包,因?yàn)槔锩嬗杏玫较吕蜻x擇。

新建一個class TestUpDateMedia? 的類。

def test_update_meida(self,login):    

并在里面聲明一個‘test_update_meida’的方法,它繼承自conftest.py的login的類。這里是直接調(diào)用登錄功能。

        # 2、點(diǎn)擊我的媒體login.find_element_by_partial_link_text('我的媒體').click()# 3、點(diǎn)擊媒體login.find_element_by_class_name('item-thumb').click()# 4、點(diǎn)擊編輯媒體login.find_element_by_link_text('編輯媒體').click()

先點(diǎn)我的媒體,點(diǎn)擊媒體,再點(diǎn)擊編輯媒體

        # 5、設(shè)置標(biāo)題login.find_element_by_id('id_title').clear()login.find_element_by_id('id_title').send_keys('小猴子.MP4')

設(shè)置標(biāo)題前應(yīng)先清空輸入框

        # 6、設(shè)置媒體標(biāo)題分類id_category = login.find_element_by_id('id_category')# 如果用ctrl鍵,可以多選,用click()方法不能多選。# Selenium給我們提供了一種方法 select_by_visible_text('Film')  可以多選select_category = Select(id_category)select_category.select_by_visible_text('Film')select_category.select_by_index(0)  # Artselect_category.select_by_value('2') # Documentary

設(shè)置媒體的標(biāo)題分類

這里涉及到下拉框的操作

下拉框操作
?? ?假設(shè)有一個元素使select標(biāo)簽,這時需要選擇其中一個/多個選項(xiàng)
?? ?這時就不是click或者sendKeys這樣的操作,而是應(yīng)該使用”選擇“操作
?? ?代碼實(shí)現(xiàn)步驟
?? ??? ?1.首先定位下拉框
?? ??? ??? ?WebElement element = driver.findElement(By...)
?? ??? ?2.把定位到的元素轉(zhuǎn)成下拉框類型
?? ??? ??? ?Select select = new Select(element);
?? ??? ?3、執(zhí)行”選擇“操作
?? ??? ??? ?select.deselectAll()
?? ??? ??? ??? ?清空選擇
?? ??? ??? ?選擇某個元素,有三種方式
?? ??? ??? ??? ?select.select_by_visible_text('界面可見的文字')
?? ??? ??? ??? ?select.select_by_index(0) #選項(xiàng)的value屬性
?? ??? ??? ??? ?select.select_by_value('2') ?#第幾個選項(xiàng)

        # 7、設(shè)置標(biāo)簽001id_new_tags = login.find_element_by_id('id_new_tags')id_new_tags.clear()id_new_tags.send_keys('001')# 8、設(shè)置產(chǎn)生日期id_add_date = login.find_element_by_id('id_add_date')id_add_date.clear()id_add_date.send_keys('2000/06/04 20:49')

設(shè)置標(biāo)簽和產(chǎn)生日期。

        # 9、上傳圖片login.find_element_by_id('id_uploaded_poster').send_keys('D:\\niupeng2.png')# 10、描述id_description = login.find_element_by_id('id_description')id_description.clear()id_description.send_keys('今天我們?nèi)游飯@,參觀了小猴子')# 11、狀態(tài)id_state = login.find_element_by_id('id_state')Select(id_state).select_by_visible_text('私有')

正常定位元素并發(fā)送值就可以。

        # 12、啟動評論login.find_element_by_id('id_enable_comments').click()# 13、縮略圖時刻id_thumbnail_time = login.find_element_by_id('id_thumbnail_time')id_thumbnail_time.clear()id_thumbnail_time.send_keys('50')# 14、允許下載login.find_element_by_id('id_allow_download').click()# 15、點(diǎn)擊Update Medialogin.find_element_by_class_name('primaryAction').submit()

到這后,第一版已經(jīng)完成了。已經(jīng)實(shí)現(xiàn)了基本的功能。

在命令行界面輸入pytest,會顯示執(zhí)行完成。

3、編輯媒體V2.0

簡要說明一下代碼的結(jié)構(gòu)。首先新建了一個叫autoFuncTest2的工程。里面按順序resource下面有test_data.xlsx的測試數(shù)據(jù)文件。test_cases下面的conftest.py的配置文件和test_update_media2.py的測試用例文件,utils里面有一個專門讀取xlsx文件的excel_utils.py文件。最后是一個pytest.ini的全局配置文件。

執(zhí)行順序?yàn)?#xff0c;首先命令行,輸入pytest,會讀取pytest.ini配置文件,按照里面的路徑執(zhí)行測試test_cases下面的測試用例test_update_media2.py。test_update_media2.py再調(diào)用conftest.py進(jìn)行登錄,登錄完成后調(diào)用utils里面有一個專門讀取xlsx文件的excel_utils.py文件,讀取resource下面有test_data.xlsx的測試數(shù)據(jù)文件,進(jìn)行操做。

3.1?pytest之全局配置文件pytest.ini

把代碼的執(zhí)行路徑改了。因?yàn)槲覀円匦戮帉慥2.0版本。我們要將待執(zhí)行的命令指向要執(zhí)行的文件。

[pytest]
addopts = -s -v
testpaths = test_cases/test_update_media2.py

3.2 測試數(shù)據(jù)文件test_data.xlsx

這個是要讀取的excel文件

其中,里面有一些參數(shù),是我們要讀取的。

title, category, tag, date, image, description, state, enable_comments, thumbnail_time, allow_download,verify_state, verify_date, verify_enable_comments,verify_allow_download

3.3?test_update_media2.py

這個要從excel里面讀取數(shù)據(jù),進(jìn)行參數(shù)化。

import timeimport pytest
from selenium.webdriver.support.select import Selectfrom utils import excel_utilsclass TestUpDateMedia:test_data = excel_utils.read(__file__)@pytest.mark.parametrize('title, category, tag, date, image, description, state,'' enable_comments, thumbnail_time, allow_download,'' verify_state, verify_date, verify_enable_comments,'' verify_allow_download', test_data)def test_update_media(self,login,title, category, tag, date, image, description,state, enable_comments, thumbnail_time, allow_download,verify_state, verify_date, verify_enable_comments,verify_allow_download):# 1、登錄# 2、點(diǎn)擊我的媒體if 'Media was edited!' in login.page_source:login.find_element_by_xpath('//i[text()="menu"]').click()# 如果頁面出現(xiàn)了'Media was edited!',那么需要先點(diǎn)擊左上角的”i“標(biāo)簽,三個橫線的按鈕login.find_element_by_partial_link_text('我的媒體').click()# except Exception as e:#     login.find_element_by_xpath('//i[text()="menu"]').click()# 3、點(diǎn)擊媒體login.find_element_by_class_name('item-thumb').click()# 4、點(diǎn)擊編輯媒體login.find_element_by_link_text('編輯媒體').click()# 5、設(shè)置標(biāo)題login.find_element_by_id('id_title').clear()login.find_element_by_id('id_title').send_keys(title)# 6、設(shè)置媒體標(biāo)題分類id_category = login.find_element_by_id('id_category')# 如果用ctrl鍵,可以多選,用click()方法不能多選。# Selenium給我們提供了一種方法 select_by_visible_text('Film')  可以多選select_category = Select(id_category)select_category.deselect_all()for c in category.split(','):select_category.select_by_visible_text(c)# select_category.select_by_index(0)  # Art# select_category.select_by_value('2') # Documentary# Experimental,Music,TV# 7、設(shè)置標(biāo)簽001id_new_tags = login.find_element_by_id('id_new_tags')id_new_tags.clear()id_new_tags.send_keys()# 8、設(shè)置產(chǎn)生日期id_add_date = login.find_element_by_id('id_add_date')id_add_date.clear()id_add_date.send_keys(date)# 9、上傳圖片login.find_element_by_id('id_uploaded_poster').send_keys(image)# 10、描述id_description = login.find_element_by_id('id_description')id_description.clear()id_description.send_keys(description)# 11、狀態(tài)id_state = login.find_element_by_id('id_state')Select(id_state).select_by_visible_text(state)# 12、啟動評論id_enable_comments = login.find_element_by_id('id_enable_comments')if enable_comments == '啟用評論' and id_enable_comments.is_selected():passelif enable_comments == '不啟用評論' and  not id_enable_comments.is_selected():passelse:id_enable_comments.click()# 13、縮略圖時刻id_thumbnail_time = login.find_element_by_id('id_thumbnail_time')id_thumbnail_time.clear()id_thumbnail_time.send_keys(thumbnail_time)# 14、不允許下載                            allow_download,id_allow_download = login.find_element_by_id('id_allow_download')if allow_download == '允許下載' and id_allow_download.is_selected():passelif allow_download == '不允許下載' and not id_allow_download.is_selected():passelse:id_allow_download.click()# 15、點(diǎn)擊Update Medialogin.find_element_by_class_name('primaryAction').submit()# 16.斷言# 檢查標(biāo)題assert login.find_element_by_css_selector('.media-title-banner h1').text == title# 檢查分類for c in category.split(','):assert c in login.page_source# 檢查標(biāo)簽assert tag in login.page_source# 檢查日期assert verify_date in login.page_source# 檢查描述assert description in login.page_source# 檢查狀態(tài)if state == '公開':assert 'private' not in login.page_sourceassert 'unlisted' not in login.page_sourceelse:assert verify_state in login.page_source# 檢查評論assert verify_enable_comments in login.page_source# 檢查是否允許評論  form-textareaif 'Add a comment...' == verify_enable_comments:assert login.find_element_by_class_name('form-textarea').get_attribute('placeholder') == 'Add a comment...'else:assert verify_enable_comments in login.page_source# 檢查是否允許下載if verify_allow_download == '允許下載':# login.find_element_by_xpath('//span[text()="下載"]')assert '下載' in login.page_sourceelse:assert '下載' not in login.page_source

下面解釋一下

@pytest.mark.parametrize('excel中的標(biāo)題',test_data)

接下來將這些參數(shù)傳進(jìn)去。并將里面的響應(yīng)參數(shù)替換成傳進(jìn)去的參數(shù)。

def test_update_media(self,login,title, category, tag, date, image, description,state, enable_comments, thumbnail_time, allow_download,verify_state, verify_date, verify_enable_comments,verify_allow_download):

有時隱式等待一些元素需要用一些條件觸發(fā),可以用一些條件判斷代替。

if 'Media was edited!' in login.page_source:login.find_element_by_xpath('//i[text()="menu"]').click()

有時一個參數(shù)里面有多個值,比如category里面有Experimental,Music,TV,下拉框里面需要選多個值,需要用for循環(huán)遍歷,并用逗號隔開他們。

        # 6、設(shè)置媒體標(biāo)題分類id_category = login.find_element_by_id('id_category')# 如果用ctrl鍵,可以多選,用click()方法不能多選。# Selenium給我們提供了一種方法 select_by_visible_text('Film')  可以多選select_category = Select(id_category)select_category.deselect_all()for c in category.split(','):select_category.select_by_visible_text(c)

有時需要判斷同時頁面上是否勾選,如果勾選,并且excel中要求啟用評論,那么不操作,反之就勾選。這里面涉及到一個多重判斷。

        # 12、啟動評論id_enable_comments = login.find_element_by_id('id_enable_comments')if enable_comments == '啟用評論' and id_enable_comments.is_selected():passelif enable_comments == '不啟用評論' and  not id_enable_comments.is_selected():passelse:id_enable_comments.click()

http://www.risenshineclean.com/news/30474.html

相關(guān)文章:

  • 學(xué)做靜態(tài)網(wǎng)站怎么做電商生意
  • 織夢網(wǎng)站聯(lián)系我們的地圖怎么做關(guān)鍵詞搜索廣告
  • 湛江模板建站系統(tǒng)海外短視頻軟件
  • 哪里做網(wǎng)站最好小時seo加盟
  • 建設(shè)云南省癌癥中心網(wǎng)站關(guān)鍵詞優(yōu)化價格
  • 網(wǎng)站新聞對百度優(yōu)化有用嗎百度網(wǎng)盤搜索入口
  • 虛擬主機(jī)怎么弄網(wǎng)站南昌seo推廣
  • 網(wǎng)站專做盜版小說 會犯法嗎百度搜索指數(shù)排行榜
  • 諸城網(wǎng)絡(luò)營銷免費(fèi)發(fā)seo外鏈平臺
  • 廈門大型企業(yè)網(wǎng)站開發(fā)公司高級seo招聘
  • 學(xué)校教育網(wǎng)站模板惡意點(diǎn)擊推廣神器
  • 有沒有好網(wǎng)站推薦提升網(wǎng)頁優(yōu)化排名
  • ppt做的好的網(wǎng)站有哪些樂事薯片軟文推廣
  • nb-iot網(wǎng)站開發(fā)百度付費(fèi)推廣有幾種方式
  • 合肥晨曦網(wǎng)站建設(shè)百度競價關(guān)鍵詞怎么優(yōu)化
  • 東莞市國外網(wǎng)站建設(shè)平臺谷歌網(wǎng)頁版
  • 網(wǎng)站建設(shè)產(chǎn)業(yè)pest分析windows優(yōu)化軟件排行
  • 廣州企業(yè)網(wǎng)站建設(shè)推薦域名服務(wù)器ip地址查詢
  • 網(wǎng)站建設(shè)需要什么人才網(wǎng)絡(luò)營銷與直播電商專業(yè)介紹
  • 哪個做簡歷的網(wǎng)站比較好石家莊最新新聞事件
  • 網(wǎng)站做整站做優(yōu)化seo站點(diǎn)是什么意思
  • 網(wǎng)站開發(fā)報告步驟分析企業(yè)軟文
  • 淘寶seo搜索優(yōu)化seo關(guān)鍵字怎么優(yōu)化
  • 做印章的網(wǎng)站網(wǎng)站推廣服務(wù)
  • 網(wǎng)站ftp查詢國際網(wǎng)絡(luò)銷售平臺有哪些
  • 西安做網(wǎng)站建設(shè)的qq推廣工具
  • 醫(yī)藥網(wǎng)站建設(shè)蟻坊軟件輿情監(jiān)測系統(tǒng)
  • 山西做網(wǎng)站運(yùn)營的公司網(wǎng)店運(yùn)營培訓(xùn)哪里好
  • 視差效果網(wǎng)站網(wǎng)絡(luò)推廣是什么職業(yè)
  • 公司請做網(wǎng)站百度 競價排名