from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
import time,unittest,json,re,random
from read_data import Excel
excel = Excel(r"D:\测试一阶段\python\Demo\woniuboss\GUI\woniuboss.xls")
class WnBoos(unittest.TestCase):
sleep1 = 2
sleep2 = 4
sleep3 = 6
login_tag = False
@classmethod
def setUpClass(cls):
cls.web = webdriver.Chrome()
cls.web.get("http://192.168.7.19:8080/xxxxx/")
cls.web.maximize_window()
cls.web.implicitly_wait(15)
# 登陆测试
def test_01_login(self):
self.web.find_element_by_name("userName").send_keys("WNCD000")
self.web.find_element_by_name("userPass").send_keys("woniu123")
self.web.find_element_by_name("checkcode").send_keys(Keys.CONTROL,"a")
self.web.find_element_by_name("checkcode").send_keys("0000")
self.web.find_element_by_xpath('//button[@onclick="login();"]').click()
time.sleep(self.sleep2)
self.assertEqual(self.web.current_url,"http://192.168.7.19:8080/WoniuBoss2.5/resource")
WnBoos.login_tag = True
# 解密
@unittest.skipUnless(login_tag==False,"为false时跳过") #login为False时候跳过
def test_02_decrypt(self):
self.web.find_element_by_id("btn-decrypt").click()
self.web.find_element_by_name("secondPass").send_keys("woniu123")
self.web.find_element_by_xpath('//button[@onclick="decrypt();"]').click()
# 新增
@unittest.skipUnless(login_tag==False,"为false时跳过") #login为False时候跳过
def test_03_add(self):
data = excel.get_datas("培训资源-新增")[2]
userinput = json.loads(data["user_input"])
userchoice = json.loads(data["user_choice"])
self.web.find_element_by_partial_link_text("培训资源").click()
time.sleep(self.sleep1)
self.web.find_element_by_xpath('//button[@onclick="validateAddCus();"]').click()
for k in userinput:
elem = self.web.find_element_by_name(k)
elem.send_keys(Keys.CONTROL,"a")
elem.send_keys(userinput[k])
# Select(self.web.find_element_by_xpath(f'//form[@id="addCus"]//select[@name="cus.sex"]')).select_by_visible_text("女")
for k in userchoice:
xpath = f'//form[@id="addCus"]//select[@name="{k}"]'
Select(self.web.find_element_by_xpath(xpath))\
.select_by_visible_text(userchoice[k])
self.web.find_element_by_id("addCusBtn").click()
time.sleep(WnBoos.sleep1)
result = self.web.find_element_by_css_selector("div.bootbox-body").text
self.web.find_element_by_xpath('//button[@data-bb-handler="ok"]').click()
self.assertEqual(result,"新增成功.")
#废弃
def test_04_abandon(self):
self.web.find_element_by_partial_link_text("培训资源").click()
time.sleep(self.sleep1)
pattern = "显示第 1 到第 (\d+) 条记录,总共 \d+ 条记录"
s = self.web.find_element_by_xpath('//span[@class="pagination-info"]').text
m = re.match(pattern,s)
size = m.group(1)
size = int(size)-1
# print(f'//input[@data-index="{random.randint(0,size)}"]')
self.web.find_element_by_xpath(f'//input[@data-index="{random.randint(0,size)}"]').click()
self.web.find_element_by_id("abandon").click()
time.sleep(5)
self.web.find_element_by_xpath('//button[@data-bb-handler="confirm"]').click()
@classmethod
def tearDownClass(cls):
cls.web.find_element_by_link_text("注销").click()
cls.web.quit()
if __name__ == '__main__':
unittest.main()