An error occurred while loading the file. Please try again.
An error occurred while loading the file. Please try again.
An error occurred while loading the file. Please try again.
-
章 登恒 authorede3f3d11a
import datetime
import threading
import time
import traceback
from airtest.core.api import *
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
from airtest_selenium.proxy import *
from selenium.webdriver import Chrome, ChromeOptions
from airtest.core.api import *
from airtest_selenium.proxy import *
from mail1 import send_email1
from public.tools import *
# chrome = webdriver.Chrome(chrome_options=opt)
def job():
print("这是一个需要执行的任务。。。。。")
create_salesorder()
print("当前线程的个数:", threading.active_count())
time.sleep(1)
print("当前线程的信息:", threading.current_thread())
def add_goods(goodsname,chrome):
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
goodsname)
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
Keys.ENTER)
#获取页数
pagecount=chrome.find_element_by_xpath('(// li[ @class ="number"])[16]').text
pagecount=10
for i in range(int(pagecount)):
# chrome.find_element_by_xpath('//span[text()="添加商品"]').click()
# chrome.find_element_by_xpath(
# '//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
# goodsname)
# chrome.find_element_by_xpath(
# '//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
# Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath(
'//th[@class="el-table_18_column_229 multiple-column el-table-column--selection is-leaf headerCellClassName el-table__cell"]/div/label/span/span').click()
#翻页
chrome.find_element_by_xpath('(//button[@class="btn-next is-last"])[6]').click()
#点击确定
# chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
sleep(2)
def create_salesorder(type=1):
try:
import time
pro_path = get_pro_path()
# start = time.clock()
# caps = DesiredCapabilities().CHROME
# caps["pageLoadStrategy"] = "normal" # complete
# caps["pageLoadStrategy"] = "eager" # interactive
# caps["pageLoadStrategy"] = "none"
# chrome = webdriver.Chrome(desired_capabilities=caps)
opt = ChromeOptions() # 创建 Chrome 参数对象
# opt.headless = True # 把 Chrome 设置成无界面模式,windows/Linux 皆可
opt.headless = False # 把 Chrome 设置成无界面模式,windows/Linux 皆可
opt.add_argument('--start-maximized')
opt.add_argument('--window-size=1280x1024')
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
# chrome = Chrome(options=opt) # 创建无界面对象
# chrome = WebChrome(chrome_options=opt)
chrome = WebChrome(chrome_options=opt)
# chrome=webdriver.Chrome()
chrome.implicitly_wait(20)
chrome.get("http://10.17.65.200:8088/portal/")
# chrome.get("http://10.17.65.207:8088/uat/r/w")
sleep(2)
chrome.implicitly_wait(30)
# chrome.maximize_window()
chrome.find_element_by_id('input1').clear()
chrome.find_element_by_id('input1').send_keys('admin')
chrome.find_element_by_id('input2').clear()
chrome.find_element_by_id('input2').send_keys('Gyxc1234')
chrome.find_element_by_id('input2').send_keys(Keys.ENTER)
while True:
try:
if(chrome.find_element_by_xpath('//span[text()="退出"]').is_displayed()==True):
break
except:
continue
#切换所属公司
chrome.find_element_by_class_name('changeCom').click()
sleep(1)
chrome.find_element_by_xpath('//span[text()="国药集团北京医疗器械有限公司"]/following-sibling::button').click()
sleep(1)
chrome.find_element_by_xpath('// button[text() = "确定"]').click()
sleep(1)
# chrome.find_element_by_xpath('//div[text()="销售管理"]').click()
# actions = ActionChains(chrome)
# actions.move_to_element(chrome.find_element_by_xpath('//div[text()="销售业务"]')).perform()
# chrome.find_element_by_xpath('//span[text()="销售订单"]').click()
order_link = chrome.find_element_by_xpath('//span[text()="销售订单"]')
chrome.execute_script("arguments[0].click();", order_link)
chrome.switch_to.frame(chrome.find_element_by_xpath('(//iframe[@class="metro-main-frame"])[2]'))
sleep(4)
chrome.find_element_by_xpath('//span[text()="新建"]').click()
sleep(4)
chrome.switch_to.frame(chrome.find_element_by_xpath('//iframe[contains(@name,"awsui-dialog-iframe")]'))
#获取订单号
orderno=chrome.find_element_by_xpath('//div[text() = "销售订单号 "]/following-sibling::div/span').text
print(orderno)
# chrome.switch_to.default_content()
sleep(4)
# while True:
# try:
# if chrome.find_element_by_xpath('//div[text()="订单公司名称 "]').is_displayed():
# print(chrome.find_element_by_xpath('//div[text()="订单公司名称 "]').text)
# break
# except:
# continue
print(chrome.find_element_by_xpath('//div[text()="订单公司名称 "]').text)
sleep(2)
chrome.find_element_by_xpath(
'//div[text()="订单公司名称 "]/following-sibling::div/div/div/div/div/div/div/div/span/span/i').click()
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:公司名称,公司编码"]').send_keys('国药集团北京')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:公司名称,公司编码"]').send_keys(Keys.ENTER)
chrome.find_element_by_xpath('(//span[@class="el-radio__inner"])[1]').click()
chrome.find_element_by_xpath('//span[@class="ensureBtn"]/button').click()
chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').click()
chrome.find_element_by_xpath('//div[text()="出库仓库 "]/following-sibling::div/div/div/div/div/div/div/div/span/span/i').click()
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:仓库编码,仓库名称,是否传WMS,所属公司名称"]').send_keys('北京强生非')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:仓库编码,仓库名称,是否传WMS,所属公司名称"]').send_keys(Keys.ENTER)
# chrome.find_element_by_xpath('//span/input[@type="radio" and @value="03105272b49986351ef7eb2930b5454de"]').click()
btn_div= chrome.find_element_by_xpath('//span/input[@type="radio" and @value="03105272b49986351ef7eb2930b5454de"]')
chrome.execute_script("arguments[0].click();", btn_div)
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').click()
sleep(1)
chrome.find_element_by_xpath('//div[text()="客户及合同信息"]').click()
chrome.find_element_by_xpath(
'//div[text()="合同号 "]/following-sibling::div/div/div/div/div/div/div/div/span/span/i').click()
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:合同号,合同协议号,对方编码,项目名称,项目编码,业态编码,参考部门,参考部门编码,参考业务员,参考业务员编码,产品线名称,产品线编码,合同类型,合同属性"]').send_keys('38443')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:合同号,合同协议号,对方编码,项目名称,项目编码,业态编码,参考部门,参考部门编码,参考业务员,参考业务员编码,产品线名称,产品线编码,合同类型,合同属性"]').send_keys(Keys.ENTER)
chrome.find_element_by_xpath('//div[@class="multiple-header string_col" and text()="38443"]/ancestor-or-self::td/preceding-sibling::td/div/label/span/span').click()
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[4]').click()
#业务员名称
chrome.find_element_by_xpath(
'//div[text()="业务员名称 "]/following-sibling::div/div/div/div/div/div/div/div/span/span/i').click()
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:业务员名称,业务员编码,业务部门名称,业务部门编码,部门类型编码"]').send_keys('杨春刚')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:业务员名称,业务员编码,业务部门名称,业务部门编码,部门类型编码"]').send_keys(Keys.ENTER)
chrome.find_element_by_xpath('(//div[text()="杨春刚"])[3]/ancestor-or-self::td/preceding-sibling::td/div/label/span/span').click()
chrome.find_element_by_xpath('(//span[@class="ensureBtn"]/button[1])[4]').click()
#其他信息页签
chrome.find_element_by_xpath('//div[text()="其他信息"]').click()
chrome.find_element_by_xpath('//div[@cid="AWSUI.SwitchButton"]//div/div/div/div/span[1]').click()
# 子表信息录入
chrome.find_element_by_xpath('//div[text()="主体信息"]').click()
# 点击添加商品弹出添加商品子窗口
chrome.find_element_by_xpath('//button[text()="导入"]').click()
sleep(1)
# chrome.find_element_by_xpath('//span[text()="上传Excel文件"]').click()
sleep(1)
element = chrome.find_element_by_class_name('upload__text')
chrome.execute_script("arguments[0].click();", element)
sleep(1)
chrome.find_element_by_class_name('el-upload__text').send_keys(r'D:\PycharmProjects\骨科库存占用专项测试\testcase\od\销售订单明细8.xls')
sleep(1)
# for i in range(1):
# chrome.find_element_by_xpath('//span[text()="添加商品"]').click()
# add_goods('PTCA',chrome)
# chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
# sleep(10)
# for i in range(1):
# chrome.find_element_by_xpath('//span[text()="添加商品"]').click()
# add_goods('PTCA', chrome)
# chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
# sleep(10)
# chrome.find_element_by_xpath('//span[text()="添加商品"]').click()
# chrome.find_element_by_xpath(
# '//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
# 'PTCA')
# chrome.find_element_by_xpath(
# '//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
# Keys.ENTER)
# sleep(1)
# chrome.find_element_by_xpath('//th[@class="el-table_18_column_229 multiple-column el-table-column--selection is-leaf headerCellClassName el-table__cell"]/div/label/span/span').click()
# chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
# sleep(2)
sleep(6)
for i in range(1,101):
element = chrome.find_element_by_xpath('(//td[@colid="col_177"])[%s]'%i)
chrome.execute_script("arguments[0].click();", element)
# element=chrome.find_element_by_xpath('(//td[@colid="col_177"])[%s]'%i)
# element.click()
sleep(2)
# element.send_keys("1")
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='1'")
chrome.find_element_by_class_name('awsui-input-number-right').send_keys('1')
# chrome.find_element_by_xpath('//td[@colid="col_177"]/div/div').send_keys('1')
sleep(2)
# chrome.find_element_by_xpath('(//td[@colid="col_178"])[%s]'%i).click()
element = chrome.find_element_by_xpath('(//td[@colid="col_178"])[%s]' % i)
chrome.execute_script("arguments[0].click();", element)
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
sleep(2)
#滚动条右拉
# document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 5000
chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 2000");
for i in range(1,101):
element = chrome.find_element_by_xpath('(//td[@colid="col_197"])[%s]'%i)
element.click()
sleep(2)
chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
sleep(2)
element = chrome.find_element_by_xpath('(//td[@colid="col_198"])[%s]'%i)
element.click()
sleep(2)
chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
sleep(2)
# lock = threading.Lock()
# lock.acquire()
start = time.clock()
#方案一============================开始
if type==1:
import datetime
now = datetime.datetime.now()
one_minutes_later = now + datetime.timedelta(minutes=1)
now = now.strftime('%Y-%m-%d %H:%M')
one_minutes_later = one_minutes_later.strftime('%Y-%m-%d %H:%M')
# print('bbbbbbbb'+one_minutes_later)
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')
# print('变化的时间' + now)
if now == one_minutes_later:
print('时间到了')
# global start
start = time.clock()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
# 方案一============================结束
#方案二===============开始
if type==2:
m=get_time_m() #当前时间的分钟
m1=get_submit_time(m)#计划提交时间的分钟
print('销售订单计划提交时间的分钟',m1)
while True:
m2=get_time_m() #循环获取当前的分
# sleep(30)
if (m2==m1):
start = time.clock()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
#方案二===============结束
# lock.release()
sleep(2)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini awsui-button awsui-button--primary"]//span[text()="确定"]').click()
chrome.switch_to.default_content()
chrome.switch_to.frame(chrome.find_element_by_xpath('(//iframe[@class="metro-main-frame"])[2]'))
sleep(20)
while True:
try:
if chrome.find_element_by_xpath('(//span[text()="%s"])[2]'%orderno).is_displayed()==True:
print('//span[text()="%s"]'%orderno)
break
except:
continue
print('销售订单创建完成')
end = time.clock()
print(start, end)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
print('CPU执行时间: ', end - start)
except Exception as e:
print('出现异常')
# 将日志写入到文件中单独存储
pro_path = get_pro_path()
traceback.print_exc()
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
print(imgName, image_path)
print(repr(e))
info = repr(e)
now = get_time()
writeFile_append(pro_path + '/logs/logerror%s.txt' % now, info)
# send_email1(image_path, info)
if __name__ == "__main__":
# 创建多线程时, 需要制定该线程执行的任务.name线程名字 target目标函数名
# t1 = threading.Thread(target=job,name="job1")
# t2 = threading.Thread(target=job,name="job2")
# t1.start()
# t2.start()
# opt = ChromeOptions() # 创建 Chrome 参数对象
# # opt.headless = True # 把 Chrome 设置成无界面模式,windows/Linux 皆可
# opt.headless = False # 把 Chrome 设置成无界面模式,windows/Linux 皆可
# opt.add_argument('--start-maximized')
# opt.add_argument('--window-size=1280x1024')
# # chrome = Chrome(options=opt) # 创建无界面对象
# chrome = WebChrome(chrome_options=opt) # airtest中的类
count=1
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
def start1():
count = 1
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()