Commit e3f3d11a authored by 章 登恒's avatar 章 登恒
Browse files

commit

parent 5be6c810
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 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')
# 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"])[2]').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="模糊检索:员工编码,员工名称"]').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])[1]').click()
#客户信息页签
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('1451')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:客户编码,客户名称,收货地址号,收货地址信息,地址名称"]').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="0b570c63f68dfcc5a40d6a06f6aef07e4"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').click()
#仓库信息页签
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('103356')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:仓库编码,仓库名称"]').send_keys(Keys.ENTER)
chrome.find_element_by_xpath('//div[@class="multiple-header string_col" and text()="103356"]/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="模糊检索:仓库编码,仓库名称"])[2]').send_keys('103503')
chrome.find_element_by_xpath('(//input[@placeholder="模糊检索:仓库编码,仓库名称"])[2]').send_keys(Keys.ENTER)
chrome.find_element_by_xpath(
'//div[@class="multiple-header string_col" and text()="103503"]/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"])[5]').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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,厂家物料编码,件包数"]').send_keys(
'10006179')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,厂家物料编码,件包数"]').send_keys(
Keys.ENTER)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
sleep(3)
# 滚动条右拉
chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 1000");
element = chrome.find_element_by_xpath('//td[@colid="col_159"]')
element.click()
sleep(3)
# element.send_keys("1")
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='1'")
chrome.find_element_by_xpath('(//div[@class="el-input el-input--fullScreenSize el-input--prefix el-input--suffix dataDialog awsui-input dataDialog"]/div/span/span)[2]').click()
# chrome.find_element_by_xpath('//div[@class="el-input el-input--fullScreenSize el-input--prefix el-input--suffix dataDialog awsui-input dataDialog"]/div/input').send_keys('23072800OP0237')
chrome.find_element_by_xpath('(//div[text()="合格品"])[3]').click()
sleep(1)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[9]').click()
sleep(1)
chrome.find_element_by_xpath('//td[@colid="col_160"]').click()
sleep(1)
chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 1500");
sleep(1)
element=chrome.find_element_by_xpath('//td[@colid="col_165"]')
element.click()
sleep(3)
# 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')
sleep(1)
chrome.find_element_by_xpath('//td[@colid="col_166"]').click()
sleep(1)
#滚动条右拉
# 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# element = chrome.find_element_by_xpath('//td[@colid="col_198"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
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('时间到了')
chrome.find_element_by_xpath('//span[text()="提交"]').click()
# sleep(3)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').click()
break
# 方案一============================结束
#方案二===============开始
if type==2:
m=get_time_m() #当前时间的分钟
m1=get_submit_time(m)#计划提交时间的分钟
while True:
m2=get_time_m() #循环获取当前的分
sleep(10)
if (m2==m1):
chrome.find_element_by_xpath('//span[text()="提交"]').click()
# sleep(3)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').click()
break
#方案二===============结束
# lock.release()
sleep(2)
chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').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"]'%orderno).is_displayed()==True:
print('//span[text()="%s"]'%orderno)
break
except:
continue
print('寄售借出单创建完成')
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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 = 5
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()
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 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')
# 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(2)
chrome.find_element_by_xpath('//span[text()="新建"]').click()
sleep(2)
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(2)
# 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"])[2]').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="模糊检索:员工编码,员工名称"]').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])[1]').click()
#客户信息页签
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('1451')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:客户编码,客户名称,收货地址号,收货地址信息,地址名称"]').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="0b570c63f68dfcc5a40d6a06f6aef07e4"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').click()
# #仓库信息页签
# 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('103356')
# chrome.find_element_by_xpath('//input[@placeholder="模糊检索:仓库编码,仓库名称"]').send_keys(Keys.ENTER)
# chrome.find_element_by_xpath('//div[@class="multiple-header string_col" and text()="103356"]/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="模糊检索:仓库编码,仓库名称"])[2]').send_keys('103503')
# chrome.find_element_by_xpath('(//input[@placeholder="模糊检索:仓库编码,仓库名称"])[2]').send_keys(Keys.ENTER)
# chrome.find_element_by_xpath(
# '//div[@class="multiple-header string_col" and text()="103503"]/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"])[5]').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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号"]').send_keys(
'10006179')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号"]').send_keys(
Keys.ENTER)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[3]').click()
sleep(3)
# 滚动条右拉
chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 800");
sleep(3)
element = chrome.find_element_by_xpath('//td[@colid="col_113"]')
element.click()
sleep(3)
# 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')
sleep(1)
chrome.find_element_by_xpath('//td[@colid="col_114"]').click()
sleep(1)
# chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 1500");
# sleep(1)
# element=chrome.find_element_by_xpath('//td[@colid="col_165"]')
# element.click()
# sleep(3)
# 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')
sleep(1)
# chrome.find_element_by_xpath('//td[@colid="col_166"]').click()
sleep(1)
#滚动条右拉
# 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# element = chrome.find_element_by_xpath('//td[@colid="col_198"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
sleep(1)
chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').click()
sleep(1)
chrome.switch_to.default_content()
sleep(1)
chrome.find_element_by_xpath('//span[@class="awsui-tabs-icon close"]').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(2)
# 输入配货单号
chrome.find_element_by_xpath('(//input[@class="el-input__inner"])[2]').send_keys(orderno)
sleep(2)
chrome.find_element_by_xpath('(//input[@class="el-input__inner"])[2]').send_keys(Keys.ENTER)
sleep(2)
chrome.find_element_by_xpath('//td[@class="vxe-body--column col_19 col--center col--last col--ellipsis dw-click-cell"]/div/span').click()
sleep(2)
chrome.switch_to.frame(chrome.find_element_by_xpath('//iframe[contains(@name,"awsui-dialog-iframe")]'))
sleep(2)
# 点击自动配货按钮
chrome.find_element_by_xpath('//button[text()="自动配货"]').click()
sleep(2)
chrome.find_element_by_xpath('//span[text()="分配批次"]').click()
sleep(2)
# chrome.execute_script(
# 'document.getElementsByClassName("body")[0].scrollTop = "300";')
# # 滚动条右拉
# chrome.execute_script(
# "document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 1200")
#
# element = chrome.find_element_by_xpath('(//td[@colid="col_124"])[1]')
# element.click()
# sleep(2)
# chrome.find_element_by_class_name('awsui-input-number-right').send_keys('1')
# sleep(2)
# chrome.find_element_by_xpath('//td[@colid="col_125"]').click()
# sleep(1)
#方案一============================开始
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('时间到了')
chrome.find_element_by_xpath('//span[text()="提交"]').click()
# sleep(3)
chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').click()
break
# 方案一============================结束
#方案二===============开始
if type==2:
m=get_time_m() #当前时间的分钟
m1=get_submit_time(m)#计划提交时间的分钟
while True:
m2=get_time_m() #循环获取当前的分
sleep(10)
if (m2==m1):
chrome.find_element_by_xpath('//span[text()="提交"]').click()
# sleep(3)
chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').click()
break
#方案二===============结束
while True:
try:
if chrome.find_element_by_xpath('//p[text()="流程结束"]').is_displayed()==True:
# print('流程结束')
break
# else:
# print('共享任务创建成功的元素没有出现')
except:
continue
# lock.release()
# sleep(2)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').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"])[1]'%orderno).is_displayed()==True:
print('//span[text()="%s"]'%orderno)
break
except:
continue
print('寄售申请单创建完成')
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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 = 5
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()
import threading
import time
from airtest.core.api import *
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from airtest_selenium.proxy import *
def job3():
print("这是一个需要执行的任务。。。。。")
create_salesorder(2)
print("当前线程的个数:", threading.active_count() )
time.sleep(1)
print("当前线程的信息:", threading.current_thread())
def job1():
print("这是一个需要执行的任务。。。。。")
create_salesorder1(2)
print("当前线程的个数:", threading.active_count() )
time.sleep(1)
print("当前线程的信息:", threading.current_thread())
if __name__ == "__main__":
# 创建多线程时, 需要制定该线程执行的任务.name线程名字 target目标函数名
from testcase.od.库存预占边界测试.销售订单1 import *
from testcase.od.库存预占边界测试.调拨出库单1 import *
# t1 = threading.Thread(target=create_salesorder,name="job1")
# t2 = threading.Thread(target=create_salesorder1,name="job2")
# t1.start()
# t2.start()
count = 4 #4个人下单,只有3个商品
# semaphore = threading.Semaphore(value=1)
for i in range(count):
if i<2:
t = threading.Thread(target=job3)
t.start()
if i>=2:
t = threading.Thread(target=job1)
t.start()
# t.join()
print(threading.active_count())
# sleep(30)
# sys.exit(0)
# print("程序执行结束.....")
# for i in range(10):
# from testcase.od.销售订单 import *
# start1()
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_salesorder1(1)
print("当前线程的个数:", threading.active_count())
time.sleep(1)
print("当前线程的信息:", threading.current_thread())
def create_salesorder1(type=2):
import time
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')
# 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)
allot_link = chrome.find_element_by_xpath('//span[text()="调拨出库单"]')
chrome.execute_script("arguments[0].click();", allot_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)
sleep(2)
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)
# chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').click()
# 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()
#业务员名称
sleep(1)
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])[2]').click()
#仓库信息页签
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="模糊检索:调拨出库仓库名称,调拨出库仓库编码,是否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="08374712eb9413253c6281062de2ab877"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//span[@class="ensureBtn"])[3]/button').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="0ae6dc5623cc2f6295808997a06ecb492"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//span[@class="ensureBtn"])[4]/button').click()
# 子表信息录入
chrome.find_element_by_xpath('//div[text()="主体信息"]').click()
chrome.find_element_by_xpath('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品全称,规格型号,主计量单位,采购计量单位,厂家物料编码,存储条件,存储条件说明,生产企业编码,行类型,件包数,产品备注,产品描述,商品性质,是否免备案"]').send_keys(
'10176773')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品全称,规格型号,主计量单位,采购计量单位,厂家物料编码,存储条件,存储条件说明,生产企业编码,行类型,件包数,产品备注,产品描述,商品性质,是否免备案"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
sleep(3)
element=chrome.find_element_by_xpath('//td[@colid="col_108"]')
element.click()
sleep(3)
# 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')
sleep(4)
#滚动条右拉
# 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# element = chrome.find_element_by_xpath('//td[@colid="col_198"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
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('时间到了')
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):
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
#方案二===============结束
# lock.release()
sleep(5)
# 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)
print('CPU执行时间: ', end - start)
time1=end - start
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+',耗时'+str(time1)
now = get_time()
pro_path = get_pro_path()
writeFile_append(pro_path + '/logs/catalina.out', 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中的类
pro_path = get_pro_path()
try:
for i in range(1):
t = threading.Thread(target=job)
t.start()
# t.join()
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)
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()
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 create_salesorder(type=2):
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')
# 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)
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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
'10176773')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
sleep(2)
element=chrome.find_element_by_xpath('//td[@colid="col_177"]')
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(1)
chrome.find_element_by_xpath('//td[@colid="col_178"]').click()
sleep(4)
#滚动条右拉
# 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");
element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
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"]')
element.click()
sleep(2)
chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
if type==1:
import datetime
now = datetime.datetime.now()
one_minutes_later = now + datetime.timedelta(minutes=2)
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('时间到了')
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):
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"]'%orderno).is_displayed()==True:
print('//span[text()="%s"]'%orderno)
break
except:
continue
print('销售订单创建完成')
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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()
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 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')
# 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(2)
chrome.find_element_by_xpath('//span[text()="新建"]').click()
sleep(2)
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(2)
# 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('//button[@class="el-button el-button--primary el-button--mini"]').click()
# 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="模糊检索:员工编码,员工名称,部门编码,部门名称"]').send_keys('chenshuheng')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:员工编码,员工名称,部门编码,部门名称"]').send_keys(
Keys.ENTER)
chrome.find_element_by_xpath(
'(//div[text()="chenshuheng"])[3]/ancestor-or-self::td/preceding-sibling::td/div/label/span/span').click()
chrome.find_element_by_xpath('(//span[@class="ensureBtn"]/button[1])[1]').click()
#手术类型
chrome.find_element_by_xpath('(//input[@placeholder="请选择" and @type="text"])').click()
sleep(1)
chrome.find_element_by_xpath('//li[text()="初次手术"]').click()
sleep(1)
#手术种类
chrome.find_element_by_xpath('(//input[@placeholder="请选择" and @type="text"])[2]').click()
sleep(1)
chrome.find_element_by_xpath('//li[text()="髋关节"]').click()
sleep(1)
chrome.find_element_by_xpath('//label[text()="手术日期 "]/following-sibling::div/div').click()
sleep(1)
chrome.find_element_by_xpath('//div[ @class ="el-date-table-cell"] // span[text()="31"]').click()
#客户信息页签
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('北京大学第三医院')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:客户编码,客户名称"]').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="083165b4f865526823ef04a27fa9cd7c1"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').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('//span/input[@type="radio" and @value="03105272b49986351ef7eb2930b5454de"]').click()
btn_div = chrome.find_element_by_xpath(
'//span/input[@type="radio" and @value="0c4d395678c596b20aa6c2a2fef3483d4"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').click()
# 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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,厂家物料编码,存储条件"]').send_keys(
'10214724')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,厂家物料编码,存储条件"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[4]').click()
sleep(3)
# 滚动条右拉
# chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 2000");
element=chrome.find_element_by_xpath('//td[@colid="col_89"]')
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')
sleep(2)
chrome.find_element_by_xpath('//td[@colid="col_90"]').click()
#滚动条右拉
# 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# element = chrome.find_element_by_xpath('//td[@colid="col_198"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
# if user_count<=5:
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('时间到了')
start = time.clock()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
# 方案一============================结束
#方案二===============开始
if type==2:
m=get_time_m() #当前时间的分钟
m1=get_submit_time(m)#计划提交时间的分钟
while True:
m2=get_time_m() #循环获取当前的分
# sleep(60)
if (m2==m1):
start = time.clock()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
#方案二===============结束
# lock.release()
while True:
try:
if chrome.find_element_by_xpath('//p[text()="共享任务创建成功"]').is_displayed() == True:
# print('订单完成了')
break
except:
continue
sleep(2)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').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"]'%orderno).is_displayed()==True:
print('//span[text()="%s"]'%orderno)
break
except:
continue
print('手术借出单创建完成')
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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 = 5
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()
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 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')
# 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(2)
chrome.find_element_by_xpath('//span[text()="新建"]').click()
sleep(2)
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(2)
# 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('//button[@class="el-button el-button--primary el-button--mini"]').click()
# 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="模糊检索:员工编码,员工名称,部门编码,部门名称"]').send_keys('chenshuheng')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:员工编码,员工名称,部门编码,部门名称"]').send_keys(
Keys.ENTER)
chrome.find_element_by_xpath(
'(//div[text()="chenshuheng"])[3]/ancestor-or-self::td/preceding-sibling::td/div/label/span/span').click()
chrome.find_element_by_xpath('(//span[@class="ensureBtn"]/button[1])[1]').click()
#手术类型
chrome.find_element_by_xpath('(//input[@placeholder="请选择" and @type="text"])').click()
sleep(1)
chrome.find_element_by_xpath('//li[text()="初次手术"]').click()
sleep(1)
#手术种类
chrome.find_element_by_xpath('(//input[@placeholder="请选择" and @type="text"])[2]').click()
sleep(1)
chrome.find_element_by_xpath('//li[text()="髋关节"]').click()
sleep(1)
chrome.find_element_by_xpath('//label[text()="手术日期 "]/following-sibling::div/div').click()
sleep(1)
chrome.find_element_by_xpath('//div[ @class ="el-date-table-cell"] // span[text()="31"]').click()
#客户信息页签
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('北京大学第三医院')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:客户编码,客户名称"]').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="083165b4f865526823ef04a27fa9cd7c1"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').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('//span/input[@type="radio" and @value="03105272b49986351ef7eb2930b5454de"]').click()
btn_div = chrome.find_element_by_xpath(
'//span/input[@type="radio" and @value="0c4d395678c596b20aa6c2a2fef3483d4"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').click()
# 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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,厂家物料编码,存储条件"]').send_keys(
'10176773')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,厂家物料编码,存储条件"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[4]').click()
sleep(3)
# 滚动条右拉
# chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 2000");
element=chrome.find_element_by_xpath('//td[@colid="col_89"]')
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')
sleep(2)
chrome.find_element_by_xpath('//td[@colid="col_90"]').click()
#滚动条右拉
# 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# element = chrome.find_element_by_xpath('//td[@colid="col_198"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
# if user_count<=5:
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('时间到了')
start = time.clock()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
# 方案一============================结束
#方案二===============开始
if type==2:
m=get_time_m() #当前时间的分钟
m1=get_submit_time(m)#计划提交时间的分钟
while True:
m2=get_time_m() #循环获取当前的分
# sleep(60)
if (m2==m1):
start = time.clock()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
#方案二===============结束
# lock.release()
while True:
try:
if chrome.find_element_by_xpath('//p[text()="共享任务创建成功"]').is_displayed() == True:
# print('订单完成了')
break
except:
continue
sleep(2)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').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"]'%orderno).is_displayed()==True:
print('//span[text()="%s"]'%orderno)
break
except:
continue
print('手术借出单创建完成')
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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=4
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
def start1():
count = 5
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()
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 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')
# 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(2)
chrome.find_element_by_xpath('//span[text()="新建"]').click()
sleep(2)
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(2)
# 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('//button[@class="el-button el-button--primary el-button--mini"]').click()
# 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="模糊检索:员工编码,员工名称,部门编码,部门名称"]').send_keys('chenshuheng')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:员工编码,员工名称,部门编码,部门名称"]').send_keys(
Keys.ENTER)
chrome.find_element_by_xpath(
'(//div[text()="chenshuheng"])[3]/ancestor-or-self::td/preceding-sibling::td/div/label/span/span').click()
chrome.find_element_by_xpath('(//span[@class="ensureBtn"]/button[1])[1]').click()
#手术类型
chrome.find_element_by_xpath('(//input[@placeholder="请选择" and @type="text"])').click()
sleep(1)
chrome.find_element_by_xpath('//li[text()="初次手术"]').click()
sleep(1)
#手术种类
chrome.find_element_by_xpath('(//input[@placeholder="请选择" and @type="text"])[2]').click()
sleep(1)
chrome.find_element_by_xpath('//li[text()="髋关节"]').click()
sleep(1)
chrome.find_element_by_xpath('//label[text()="手术日期 "]/following-sibling::div/div').click()
sleep(1)
chrome.find_element_by_xpath('//div[ @class ="el-date-table-cell"] // span[text()="31"]').click()
#客户信息页签
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('北京大学第三医院')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:客户编码,客户名称"]').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="02f94bb93be972567166f428524aa3b43"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').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('//span/input[@type="radio" and @value="03105272b49986351ef7eb2930b5454de"]').click()
btn_div = chrome.find_element_by_xpath(
'//span/input[@type="radio" and @value="0c4d395678c596b20aa6c2a2fef3483d4"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[4]').click()
# 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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称"]').send_keys(
'10214724')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[4]').click()
sleep(3)
# 滚动条右拉
# chrome.execute_script("document.getElementsByClassName('vxe-table--footer-wrapper body--wrapper')[0].scrollLeft = 2000");
element=chrome.find_element_by_xpath('//td[@colid="col_75"]')
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')
sleep(2)
chrome.find_element_by_xpath('//td[@colid="col_76"]').click()
#滚动条右拉
# 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# element = chrome.find_element_by_xpath('//td[@colid="col_198"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
# if user_count<=5:
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('时间到了')
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
# 方案一============================结束
#方案二===============开始
if type==2:
m=get_time_m() #当前时间的分钟
m1=get_submit_time(m)#计划提交时间的分钟
while True:
m2=get_time_m() #循环获取当前的分
# sleep(60)
if (m2==m1):
chrome.find_element_by_xpath('//span[text()="提交"]').click()
break
#方案二===============结束
# lock.release()
while True:
try:
if chrome.find_element_by_xpath('//p[text()="共享任务创建成功"]').is_displayed() == True:
# print('订单完成了')
break
except:
continue
# sleep(2)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]').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"]'%orderno).is_displayed()==True:
print('//span[text()="%s"]'%orderno)
break
except:
continue
#进入手术配货单
chrome.switch_to.default_content()
sleep(3)
chrome.find_element_by_xpath('//span[@class="awsui-tabs-icon close"]').click()
sleep(1)
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(2)
#输入请领单号
chrome.find_element_by_xpath('//label[text()="请领单号"]/parent::div/div/div/div/input').send_keys(orderno)
sleep(1)
chrome.find_element_by_xpath('//label[text()="请领单号"]/parent::div/div/div/div/input').send_keys(Keys.ENTER)
sleep(1)
# chrome.switch_to.frame(chrome.find_element_by_xpath('//iframe[contains(@name,"awsui-dialog-iframe")]'))
sleep(1)
# text1 = chrome.find_element_by_xpath('(//span[text()="QLD23082800037B"])[2]').text
# print(text1)
chrome.find_element_by_xpath('//span[text()="%s"]//parent::div/parent::td//preceding-sibling::td[1]/div/span'%orderno).click()
# element = chrome.find_element_by_xpath('(//span[@class="vxe-checkbox--icon vxe-checkbox--unchecked-icon"])[2]')
# chrome.execute_script("arguments[0].click();", element)
sleep(1)
chrome.switch_to.frame(chrome.find_element_by_xpath('//iframe[contains(@name,"awsui-dialog-iframe")]'))
sleep(1)
start = time.clock()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
while True:
try:
if chrome.find_element_by_xpath('//p[text()="流程结束"]').is_displayed() == True:
# print('订单完成了')
break
except:
continue
# chrome.find_element_by_xpath('//span[text()="批量提交"]').click()
sleep(1)
# chrome.find_element_by_xpath('//button[@class="el-button el-button--primary el-button--mini"]/span[text()="确定"]').click()
print('手术请领单创建完成')
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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 = 5
for i in range(count):
t = threading.Thread(target=job)
t.start()
t.join()
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()
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 selenium.webdriver.support.select import Select
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 match_goods(chrome,orderno,type):
chrome.switch_to.default_content()
sleep(1)
element=chrome.find_element_by_xpath('//span[@class="awsui-tabs-icon close"]')
chrome.execute_script("arguments[0].click();", element)
sleep(1)
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(2)
chrome.switch_to.frame(chrome.find_element_by_xpath('//iframe[contains(@name,"awsui-dialog-iframe")]'))
sleep(2)
# chrome.find_element_by_class_name('select2-selection select2-selection--single').click()
# chrome.execute_script("document.getElementById('select2-purchasingCoOptSelect-container').click()")
# element = chrome.find_element_by_xpath('//b[@role="presentation"]')
# chrome.execute_script("arguments[0].click();", element)
s = Select(chrome.find_element_by_id('purchasingCoOptSelect'))
s.select_by_index(0)
sleep(2)
# chrome.find_element_by_xpath('//li[text()="北京大学第三医院(3)"]').click()
# sleep(1)
chrome.find_element_by_xpath('//span[text()="%s"]'%orderno).click()
sleep(4)
# 点击自动填充按钮
chrome.find_element_by_xpath('//button[text()="自动填充"]').click()
# sleep(6)
while True:
try:
chrome.find_element_by_xpath('//button[text()="提交"]').click()
break
except:
continue
sleep(2)
# chrome.find_element_by_xpath('//a[text()="确认"]').click()
sleep(1)
# 方案一============================开始
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('时间到了')
start = time.clock()
print('提交订单开始时间', start)
chrome.find_element_by_xpath('//a[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('//a[text()="确认"]').click()
break
# 方案二===============结束
while True:
try:
if chrome.find_element_by_xpath('//div[text()="提交成功"]').is_displayed() == True:
# print('订单完成了')
break
# else:
# print('共享任务创建成功的元素没有出现')
except:
continue
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
return str(end - start)
def create_salesorder(type=1):
try:
import time
pro_path = get_pro_path()
start = time.clock()
print('开始时间',start)
# 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')
# 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)
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('//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('//span/input[@type="radio" and @value="03105272b49986351ef7eb2930b5454de"]').click()
btn_div= chrome.find_element_by_xpath('//span/input[@type="radio" and @value="012001f8d35054875d6157d4715404319"]')
chrome.execute_script("arguments[0].click();", btn_div)
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()="业务员名称 "]/following-sibling::div/div/div/div/div/div/div/div/span/span/i').click()
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:业务员名称,业务员编码,业务部门名称,部门编码,部门类型编码"]').send_keys('chenshuheng')
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:业务员名称,业务员编码,业务部门名称,部门编码,部门类型编码"]').send_keys(Keys.ENTER)
chrome.find_element_by_xpath('(//div[text()="chenshuheng"])[3]/ancestor-or-self::td/preceding-sibling::td/div/label/span/span').click()
chrome.find_element_by_xpath('(//span[@class="ensureBtn"]/button[1])[3]').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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,采购计量单位,销售计量单位,生产厂家编码"]').send_keys(
'10006179')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,采购计量单位,销售计量单位,生产厂家编码"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[4]').click()
sleep(2)
element=chrome.find_element_by_xpath('//td[@colid="col_93"]')
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(1)
chrome.find_element_by_xpath('//td[@colid="col_94"]').click()
sleep(4)
# #滚动条右拉
# # 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# 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"]')
# element.click()
# sleep(2)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
chrome.find_element_by_xpath('//span[text()="提交"]').click()
while True:
try:
if chrome.find_element_by_xpath('//p[text()="共享任务创建成功"]').is_displayed()==True:
# print('订单完成了')
break
# else:
# print('共享任务创建成功的元素没有出现')
except:
continue
# 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"]' % orderno).is_displayed() == True:
# print('//span[text()="%s"]' % orderno)
# break
# except:
# continue
while True:
try:
# if chrome.find_element_by_xpath('(//span[text()="%s"])[2]'%orderno).is_displayed()==True:
if chrome.find_element_by_xpath(
'//span[text() = "1"]/ancestor-or-self::td/following-sibling::td/div/span').is_displayed() == True:
# print('aaaaaaaaaaaaaaaaaaaaaaaa', chrome.find_element_by_xpath(
# '//span[text() = "1"]/ancestor-or-self::td/following-sibling::td/div/span').text)
break
except:
continue
print('经销售要货申请单创建完成')
#审批
chrome.switch_to.default_content()
chrome.switch_to.frame(chrome.find_element_by_xpath('(//iframe[@class="metro-main-frame"])[2]'))
sleep(2)
chrome.find_element_by_xpath(
'//span[text() = "%s"]'%orderno).click()
chrome.switch_to.frame(chrome.find_element_by_xpath('//iframe[contains(@name,"awsui-dialog-iframe")]'))
chrome.find_element_by_xpath('//span[text()="审核通过"]').click()
sleep(1)
chrome.find_element_by_xpath('//textarea[@placeholder="意见留言"]').send_keys('3333')
sleep(1)
chrome.find_element_by_xpath('//span[text()="发送"]').click()
while True:
try:
if chrome.find_element_by_xpath('//p[text()="共享任务创建成功"]').is_displayed() == True:
# print('订单完成了')
break
# else:
# print('共享任务创建成功的元素没有出现')
except:
continue
time1=match_goods(chrome, orderno,type)
# end = time.clock()
# print(start, end)
print('CPU执行时间: ', time1)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(time1)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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()
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_salesorder1(1)
print("当前线程的个数:", threading.active_count())
time.sleep(1)
print("当前线程的信息:", threading.current_thread())
def create_salesorder1(type=2):
import time
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')
# 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)
allot_link = chrome.find_element_by_xpath('//span[text()="调拨出库单"]')
chrome.execute_script("arguments[0].click();", allot_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)
sleep(2)
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)
# chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[3]').click()
# 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()
#业务员名称
sleep(1)
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])[2]').click()
#仓库信息页签
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="模糊检索:调拨出库仓库名称,调拨出库仓库编码,是否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="08374712eb9413253c6281062de2ab877"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//span[@class="ensureBtn"])[3]/button').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="0e455e227177d35f275908320e3e32fe9"]')
chrome.execute_script("arguments[0].click();", btn_div)
chrome.find_element_by_xpath('(//span[@class="ensureBtn"])[4]/button').click()
# 子表信息录入
chrome.find_element_by_xpath('//div[text()="主体信息"]').click()
chrome.find_element_by_xpath('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品全称,规格型号,主计量单位,采购计量单位,厂家物料编码,存储条件,存储条件说明,生产企业编码,行类型,件包数,产品备注,产品描述,商品性质,是否免备案"]').send_keys(
'10006179')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品全称,规格型号,主计量单位,采购计量单位,厂家物料编码,存储条件,存储条件说明,生产企业编码,行类型,件包数,产品备注,产品描述,商品性质,是否免备案"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
sleep(3)
element=chrome.find_element_by_xpath('//td[@colid="col_108"]')
element.click()
sleep(3)
# 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')
sleep(4)
#滚动条右拉
# 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");
# element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# element = chrome.find_element_by_xpath('//td[@colid="col_198"]')
# element.click()
# sleep(6)
# chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
# sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
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('时间到了')
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
#方案二===============结束
while True:
try:
if chrome.find_element_by_xpath('//p[text()="共享任务创建成功"]').is_displayed() == True:
# print('订单完成了')
break
except:
continue
# lock.release()
# sleep(5)
# 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)
print('CPU执行时间: ', end - start)
time1=end - start
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+',耗时'+str(time1)
now = get_time()
pro_path = get_pro_path()
writeFile_append(pro_path + '/logs/catalina.out', 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中的类
pro_path = get_pro_path()
try:
for i in range(1):
t = threading.Thread(target=job)
t.start()
# t.join()
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)
# print(threading.active_count())
# print("程序执行结束.....")
# create_salesorder()
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 create_salesorder(type=1,username="admin",password="Gyxc1234"):
try:
import time
pro_path = get_pro_path()
start = time.clock()
print('开始时间',start)
# 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')
# 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)
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('//span[text()="添加商品"]').click()
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
'10006179')
chrome.find_element_by_xpath(
'//input[@placeholder="模糊检索:商品编码,商品名称,规格型号,主计量单位,销售计量单位,厂家物料编码,存储条件说明,生产企业编码,供应商编码,行类型,商品性质,批发价,进口/国产/港澳台,件包数,产品备注,是否免备案,产品描述"]').send_keys(
Keys.ENTER)
sleep(1)
chrome.find_element_by_xpath('(//span[@class="el-checkbox__inner"])[4]').click()
chrome.find_element_by_xpath('(//div[@class="el-dialog__body"]/div[2]/span/button[1]/span)[5]').click()
sleep(2)
element=chrome.find_element_by_xpath('//td[@colid="col_177"]')
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(1)
chrome.find_element_by_xpath('//td[@colid="col_178"]').click()
sleep(4)
#滚动条右拉
# 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");
element = chrome.find_element_by_xpath('//td[@colid="col_197"]')
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"]')
element.click()
sleep(2)
chrome.execute_script("document.getElementsByClassName('awsui-input-number-right')[0].value='8'")
sleep(2)
# lock = threading.Lock()
# lock.acquire()
#方案一============================开始
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('时间到了')
start = time.clock()
print('提交订单开始时间',start)
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):
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"]' % orderno).is_displayed() == True:
# print('//span[text()="%s"]' % orderno)
# break
# except:
# continue
while True:
try:
# if chrome.find_element_by_xpath('(//span[text()="%s"])[2]'%orderno).is_displayed()==True:
if chrome.find_element_by_xpath(
'//span[text() = "1"]/ancestor-or-self::td/following-sibling::td/div/span').is_displayed() == True:
print('aaaaaaaaaaaaaaaaaaaaaaaa', chrome.find_element_by_xpath(
'//span[text() = "1"]/ancestor-or-self::td/following-sibling::td/div/span').text)
break
except:
continue
print('销售订单创建完成')
end = time.clock()
print(start, end)
print('CPU执行时间: ', end - start)
imgInfo = getErrorPhoto(chrome)
imgName = imgInfo[0]
image_path = imgInfo[1]
info=orderno+'执行耗时'+str(end - start)
now = get_time()
writeFile_append(pro_path + '/logs/catalina.out', info)
send_email1(image_path, info)
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()
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 public.mail1 import send_email1
from public.tools import *
opt = ChromeOptions() # 创建 Chrome 参数对象
opt.headless = False # 把 Chrome 设置成无界面模式,windows/Linux 皆可
opt.add_argument('--start-maximized')
opt.add_argument('--window-size=1280x1024')
chrome = webdriver.Chrome(chrome_options=opt)
SIT_URL = 'http://scdev.cmic.com.cn:8088/beta/'#SIT环境地址
#通行证
usr1,pwd1 = 'bj_01','Gyxc1234'
usr2,pwd2 = 'bj_02','Gyxc1234'
usr3,pwd3 = 'bj_03','Gyxc1234'
usr4,pwd4 = 'bj_04','Gyxc1234'
usr5,pwd5 = 'bj_05','Gyxc1234'
warehousename = '北京强生非WMS仓'#仓库名称
class LoginSys():
def loginsys(self,url,usr,pwd):
chrome.get(url)
sleep(2)
chrome.find_element_by_id('input1').clear()
chrome.find_element_by_id('input1').send_keys(usr)
chrome.find_element_by_id('input2').clear()
chrome.find_element_by_id('input2').send_keys(pwd)
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
class PurchaseOrder():
def data_add(self):
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(2)
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")]'))
sleep(2)
# 获取订单号
orderno = chrome.find_element_by_xpath('//div[text() = "订单号 "]/following-sibling::div/span').text
print(orderno)
#填写仓库信息
chrome.find_element_by_xpath('//div[text()="仓库名称 "]/following-sibling::div/div/div/div/div/div/div/div/span/span/i').click()
sleep(1)
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:仓库名称,仓库编码"]').send_keys(warehousename)
chrome.find_element_by_xpath('//input[@placeholder="模糊检索:仓库名称,仓库编码"]').send_keys(Keys.ENTER)
sleep(1)
btn_div= chrome.find_element_by_xpath('//span/input[@type="radio" and @value="022bc5d182335c5146b3817a500c2cbc7"]')
chrome.execute_script("arguments[0].click();", btn_div)
sleep(1)
chrome.find_element_by_xpath('(//button[@class="el-button el-button--primary el-button--default"])[2]').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"])[3]').click()
sleep(2)
if __name__ == '__main__':
step1 = LoginSys()
step2 = PurchaseOrder()
step1.loginsys(SIT_URL,usr2,pwd2)
step2.data_add()
\ No newline at end of file
Supports Markdown
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