Commit 5b5d96f4 authored by gaotao's avatar gaotao

添加删除嫌疑人,搜索案件

parent dc3f9bdf
from .browser_engine import BrowserEngine
import os
def get_engine(file, url):
def inner(f):
def wapper(*args, **kwargs):
try:
if file:
log_name = os.path.split(file)[-1].split(".")[0]
engine = BrowserEngine(log_name, url)
else:
engine = BrowserEngine(url=url)
ret = f(engine, *args, **kwargs)
if engine.driver: engine.driver.quit()
if engine: del engine
return ret
except Exception as e:
print(e)
return wapper
return inner
...@@ -9,13 +9,20 @@ from basepage.logger import Logger ...@@ -9,13 +9,20 @@ from basepage.logger import Logger
class BrowserEngine(ReadConfig): class BrowserEngine(ReadConfig):
__log_name = "browser_engine" __log_name = "browser_engine"
def __init__(self, log_name=__log_name): def __init__(self, log_name=__log_name,url='URL'):
super().__init__(log_name) super().__init__(log_name)
# self.__logger = super().get_logger() # self.__logger = super().get_logger()
self._browser = '' self._browser = ''
self.url = url
self._driver_path = r"C:\Users\80980\znfz_autotest\driver\chromedriver.exe" self._driver_path = r"C:\Users\80980\znfz_autotest\driver\chromedriver.exe"
self._driver = webdriver.Chrome(self._driver_path)
# def init(self):
self.driver = webdriver.Chrome(self._driver_path)
self.open_browser() self.open_browser()
self.login_znfz()
self.get_page()
self.driver.xpath = self.driver.find_elements_by_xpath
def open_browser(self): def open_browser(self):
browser = self.get_browserType('browserName') browser = self.get_browserType('browserName')
...@@ -24,43 +31,60 @@ class BrowserEngine(ReadConfig): ...@@ -24,43 +31,60 @@ class BrowserEngine(ReadConfig):
# driver = webdriver.Chrome(r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") # driver = webdriver.Chrome(r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
self._driver.get(url) self.driver.get(url)
self.logger.info("Open url: %s" % url) self.logger.info("Open url: %s" % url)
time.sleep(3) time.sleep(1)
self._driver.maximize_window() self.driver.maximize_window()
self.logger.info("Maximize the current window.") self.logger.info("Maximize the current window.")
self._driver.implicitly_wait(10) self.driver.implicitly_wait(10)
self.logger.info("Set implicitly wait 10 seconds.") self.logger.info("Set implicitly wait 10 seconds.")
return self._driver return self.driver
def login_znfz(self): def login_znfz(self):
if self.url =='LOGIN':
return
username = self.get_userInfo('username') username = self.get_userInfo('username')
password = self.get_userInfo('password') password = self.get_userInfo('password')
url = self.get_testUrl('URL')
print(username, password, url)
self.logger.info("username: %s" % username) self.logger.info("username: %s" % username)
# logger.info(string.Formatter("username: %s, password: %s, open url: %s", username, password, url)) # logger.info(string.Formatter("username: %s, password: %s, open url: %s", username, password, url))
# logger.info("password :%s" % password) # logger.info("password :%s" % password)
# logger.info("Open url: %s" % url) # logger.info("Open url: %s" % url)
tags = self._driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[1]/div/div/span/span/span') tags = self.driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[1]/div/div/span/span/span')
self.logger.info("tags.text:%s" % tags.text) self.logger.info("tags.text:%s" % tags.text)
# print(tags.text) # print(tags.text)
tags.click() tags.click()
time.sleep(1) time.sleep(1)
self._driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/span[1]').click() self.driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/span[1]').click()
tags2 = self._driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/ul/li[3]/span[2]/span') tags2 = self.driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/ul/li[3]/span[2]/span')
self.logger.info("tags2.text:%s" % tags2.text) self.logger.info("tags2.text:%s" % tags2.text)
# print(tags2.text) # print(tags2.text)
tags2.click() tags2.click()
time.sleep(1) time.sleep(1)
self._driver.find_element_by_xpath('//*[@id="username"]').send_keys(username) self.driver.find_element_by_xpath('//*[@id="username"]').send_keys(username)
self._driver.find_element_by_xpath('//*[@id="password"]').send_keys(password) self.driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
self._driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[4]/div/div/span/button').click() self.driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[4]/div/div/span/button').click()
return self._driver return self.driver
def get_page(self):
time.sleep(1)
if self.url in ['LOGIN', 'INDEX']:
return
if self.url != 'URL':
url = self.get_testUrl(self.url)
url = url.format(bmsah=self.get_caseId('caseId')) if '{' in url else url
self.logger.info("the testUrl : %s" % url)
self.driver.get(url)
def __del__(self):
try:
self.driver.quit()
except:
pass
''' '''
......
...@@ -23,25 +23,24 @@ class CheckGsjd(BrowserEngine): ...@@ -23,25 +23,24 @@ class CheckGsjd(BrowserEngine):
return self._driver return self._driver
# 选择审查起诉案件 # 选择审查起诉案件
def choose_gsjd_case(self): # def choose_gsjd_case(self):
caseId = self.get_caseId('caseId') # caseId = self.get_caseId('caseId')
self.logger.info("the caseId : %s" % caseId) # self.logger.info("the caseId : %s" % caseId)
# driver.find_element_by_xpath('/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[1]/div[3]/input').send_keys(caseId) # # driver.find_element_by_xpath('/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[1]/div[3]/input').send_keys(caseId)
self._driver.find_element_by_xpath('//*[@id="ajmc"]').send_keys(caseId) # self._driver.find_element_by_xpath('//*[@id="ajmc"]').send_keys(caseId)
# 点击按钮 # # 点击按钮
self._driver.find_element_by_xpath( # self._driver.find_element_by_xpath(
'/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[2]/div/button[2]').click() # '/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[2]/div/button[2]').click()
time.sleep(5) # time.sleep(5)
# 点击办理 # # 点击办理
tags = self._driver.find_element_by_xpath( # tags = self._driver.find_element_by_xpath(
'/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/table/tbody/tr/td[7]/p/a') # '/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/table/tbody/tr/td[7]/p/a')
# print(tags.text) # # print(tags.text)
self.logger.info("tags.text:%s" % tags.text) # self.logger.info("tags.text:%s" % tags.text)
tags.click() # tags.click()
# driver.find_element_by_tag_name(tags.text).click() # driver.find_element_by_tag_name(tags.text).click()
def __del__(self):
self._driver.quit()
# if __name__ == '__main__': # if __name__ == '__main__':
# test = CheckGsjd() # test = CheckGsjd()
......
...@@ -13,7 +13,7 @@ class Logger(object): ...@@ -13,7 +13,7 @@ class Logger(object):
def init_logger(self, ): def init_logger(self, ):
self.logger.setLevel(logging.DEBUG) self.logger.setLevel(logging.DEBUG)
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time())) rq = time.strftime('%Y%m%d', time.localtime(time.time()))
log_path = os.path.dirname(os.path.abspath('.')) + '/logs/' log_path = os.path.dirname(os.path.abspath('.')) + '/logs/'
log_name = log_path + rq + '.log' log_name = log_path + rq + '.log'
......
...@@ -35,7 +35,7 @@ class ReadConfig(Logger): ...@@ -35,7 +35,7 @@ class ReadConfig(Logger):
def get_testUrl(self, param): def get_testUrl(self, param):
value = self.cf.get("testUrl", param) value = self.cf.get("testUrl", param)
self.logger.info("the testUrl : %s" % value) # self.logger.info("the testUrl : %s" % value)
return value return value
def get_userInfo(self, param): def get_userInfo(self, param):
......
...@@ -7,6 +7,7 @@ browserName = Chrome ...@@ -7,6 +7,7 @@ browserName = Chrome
[testUrl] [testUrl]
#URL = https://www.baidu.com #URL = https://www.baidu.com
URL = http://192.168.2.31/cm URL = http://192.168.2.31/cm
JBAQ_URL = http://192.168.2.31/cm/currencydeal/{bmsah}/case?bmsah={bmsah}
[userInfo] [userInfo]
username=周朝阳 username=周朝阳
password=qazwsxedc password=qazwsxedc
...@@ -21,4 +22,4 @@ database=cmrobot ...@@ -21,4 +22,4 @@ database=cmrobot
#起诉案件 #起诉案件
[gsjdCase] [gsjdCase]
#考虑循环 #考虑循环
caseId=33030401160 caseId=瓯检起诉受[2020]33030400557号
[pytest] [pytest]
markers= case1 ;log_format = %(asctime)s %(levelname)s %(message)s
case2 log_date_format = %Y-%m-%d %H:%M:%S
case3
\ No newline at end of file markers= login
select
addxyr
delxyr
gsjd
case4
case5
\ No newline at end of file
...@@ -5,7 +5,7 @@ sys.path.append('..') ...@@ -5,7 +5,7 @@ sys.path.append('..')
from basepage.browser_engine import BrowserEngine from basepage.browser_engine import BrowserEngine
from basepage.check_gsjd import CheckGsjd from basepage.check_gsjd import CheckGsjd
@pytest.mark.case3 @pytest.mark.gsjd
def test_gsid_case1(): def test_gsid_case1():
# browser = BrowserEngine() # browser = BrowserEngine()
......
import pytest, time
from basepage import get_engine
'''
测试主页面的功能
'''
@pytest.mark.select
@get_engine(__file__, 'INDEX')
def test_select(engine):
'''搜索功能'''
bmsah = engine.get_caseId('caseId')
engine.logger.info('bmsah:' + bmsah)
scqs_button = engine.driver.xpath("//span[text()='审查起诉']/..")[0]
scqs_button.click()
time.sleep(0.5)
anjian_list = engine.driver.xpath("//div[@class='ant-table-body']//tr")
engine.logger.info('案件列表长度:{}'.format(len(anjian_list)))
input_button = engine.driver.xpath("//input[@id='ajmc']")[0]
input_button.send_keys(bmsah)
engine.logger.info('输入受案号')
time.sleep(0.5)
submit_button = engine.driver.xpath("//button[@class='ant-btn ant-btn-primary']")[0]
submit_button.click()
engine.logger.info('点击提交')
time.sleep(1)
anjian_list = engine.driver.xpath("//div[@class='ant-table-body']//tr")
anjian = anjian_list[0]
engine.logger.info('案件列表长度:{}'.format(len(anjian_list)))
shouanhao = anjian.get_attribute('data-row-key')
engine.logger.info('部门受案号/案件名称:{}'.format(shouanhao))
assert shouanhao == bmsah
'''
基本案情-基本情况
'''
import pytest,time
from basepage import get_engine
@pytest.mark.addxyr
@get_engine(__file__,'JBAQ_URL')
def test_addxyr(engine):
# engine.init()
basic_url = engine.get_testUrl('JBAQ_URL')
case_id = engine.get_caseId('caseId')
url = basic_url.format(bmsah=case_id)
engine.driver.get(url)
xyr_add = engine.driver.xpath("//div[@class='plus___1ckgY']")
if not xyr_add:
engine.logger.info('没有基本信息!!查看具体情况')
exit(-1)
return
xyr_add = xyr_add[0]
xyr_list = engine.driver.xpath("//div[contains(@class,'item___2HoCU')]")
# 添加犯罪嫌疑人
xyr_add.click()
engine.logger.info('点击添加嫌疑人')
time.sleep(1)
new_xyr_list = engine.driver.xpath("//div[contains(@class,'item___2HoCU')]")
xyr_name = engine.driver.xpath("//div[@title='犯罪嫌疑人姓名']/following-sibling::div[1]//input")[0].get_attribute('value')
assert len(new_xyr_list) - len(xyr_list) == 1 and xyr_name == '','嫌疑人数+1'
# 再加一个
xyr_add.click()
engine.logger.info('点击添加嫌疑人')
time.sleep(1)
new_xyr_list = engine.driver.xpath("//div[contains(@class,'item___2HoCU')]")
xyr_name = engine.driver.xpath("//div[@title='犯罪嫌疑人姓名']/following-sibling::div[1]//input")[0].get_attribute('value')
assert len(new_xyr_list) - len(xyr_list) == 2 and xyr_name == '','嫌疑人数+2'
@pytest.mark.delxyr
@get_engine(__file__,'JBAQ_URL')
def test_addxyr(engine):
xyr_list = engine.driver.xpath("//div[contains(@class,'item___2HoCU')]")
xyr_last = xyr_list[-1]
# 删除犯罪嫌疑人
xyr_last.click()
engine.logger.info('点击最后一个嫌疑人')
xyr_del = engine.driver.xpath("//div[@class='item___2HoCU active___2SHXM']/a[contains(@class,'delete___3-b3m')]")[0]
xyr_del.click()
engine.logger.info('点击X')
time.sleep(0.5)
# 点击否
xyr_del_false = engine.driver.xpath("//div[@class='ant-popover-buttons']/button[@class='ant-btn ant-btn-sm']")[0]
xyr_del_false.click()
engine.logger.info('点击否')
time.sleep(0.5)
new_xyr_list = engine.driver.xpath("//div[contains(@class,'item___2HoCU')]")
assert len(xyr_list) == len(new_xyr_list),'嫌疑人数不变'
xyr_last.click()
xyr_del.click()
engine.logger.info('点击X')
time.sleep(0.5)
# 点击是
xyr_del_true = engine.driver.xpath("//div[@class='ant-popover-buttons']/button[@class='ant-btn ant-btn-primary ant-btn-sm']")[0]
xyr_del_true.click()
engine.logger.info('点击是')
time.sleep(1)
new_xyr_list = engine.driver.xpath("//div[contains(@class,'item___2HoCU')]")
assert len(xyr_list) - len(new_xyr_list) == 1,'嫌疑人数-1'
...@@ -6,6 +6,7 @@ sys.path.append('..') ...@@ -6,6 +6,7 @@ sys.path.append('..')
from basepage.read_config import ReadConfig from basepage.read_config import ReadConfig
from basepage.browser_engine import BrowserEngine from basepage.browser_engine import BrowserEngine
from basepage.logger import Logger from basepage.logger import Logger
from basepage import get_engine
project_name = "TestLogin" project_name = "TestLogin"
logger = Logger(project_name).get_logger() logger = Logger(project_name).get_logger()
...@@ -18,19 +19,19 @@ def teardown_function(): ...@@ -18,19 +19,19 @@ def teardown_function():
''' '''
@pytest.mark.case1 @pytest.mark.login
def test_login(): @get_engine(__file__,'LOGIN')
conf = ReadConfig() def test_login(engine):
username = conf.get_userInfo('username') # engine.init()
password = conf.get_userInfo('password') username = engine.get_userInfo('username')
url = conf.get_testUrl('URL') password = engine.get_userInfo('password')
url = engine.get_testUrl('URL')
print(username, password, url) print(username, password, url)
logger.info("username: %s" % username) logger.info("username: %s" % username)
logger.info("password :%s" % password) logger.info("password :%s" % password)
logger.info("Open url: %s" % url) logger.info("Open url: %s" % url)
browser = BrowserEngine() driver = engine.driver
driver = browser.open_browser()
tags = driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[1]/div/div/span/span/span') tags = driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[1]/div/div/span/span/span')
# print(tags.text) # print(tags.text)
...@@ -54,16 +55,5 @@ def test_login(): ...@@ -54,16 +55,5 @@ def test_login():
driver.quit() driver.quit()
@pytest.mark.case2
def test_login2():
browser = BrowserEngine()
driver = browser.login_znfz()
time.sleep(10)
driver.quit()
if __name__ == '__main__':
# pytest.main("D:/mywork/autotest/znfz_test1/test_cases")
# pytest.main(["-m=case1","--html=report.html"])
pytest.main()
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment