예제 #1
0
 def goodshNoData(self,driver):
     login = Login()
     login.test_click_login_btn(driver)
     des="纳入指示_D/O合併_未选择任何数据时,点击D/O合併"
     # 点击进入到纳入指示页面
     ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
     # 点击D/O合併
     r = ElementUtil.is_enabled(self, driver, 15, des, *self.DOheButton)
     return r
 def openWindow(self, driver):
     login = Login()
     login.test_click_login_btn(driver)
     #   进入到纳入指示页面
     des = '"纳入指示_纳入场所一括登录_不输入数据时点击纳入场所一括登录"'
     ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
     #   点击按钮
     r = ElementUtil.is_enabled(self, driver, 15, des,
                                *self.deliveryOrdersStar)
     return r
예제 #3
0
    def goodsfenNoData(self,driver):
        des="纳入指示_D/O分け_未选择任何数据时,点击D/O分け"
        login = Login()
        login.test_click_login_btn(driver)

        # 进入到纳入指示页面
        ElementUtil.click(self, driver, 15, des,*self.companiesStartElement)
        # 点击D/O分け
        r=ElementUtil.is_enabled(self,driver,15, des,*self.DOfenButton)
        return r
예제 #4
0
 def goodshNR(self,driver):
     login = Login()
     login.test_click_login_btn(driver)
     des="纳入指示_D/O分け_纳入指示status为納入指示済时,点击D/O合併"
     # 进入到纳入指示页面
     ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
     # 选择纳入指示status为納入指示済
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatusListn)
     sleep(2)
     # 点击D/O合
     r = ElementUtil.is_enabled(self, driver, 15, des, *self.DOheButton)
     return r
예제 #5
0
 def goodshManyData(self,driver):
     login = Login()
     login.test_click_login_btn(driver)
     des="纳入指示_D/O合併_选择多条数据时,点击D/O合併"
     # 点击进入到纳入指示页面
     ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
     # 点击检索,选择多条数据
     ElementUtil.click(self, driver, 15, des, *self.queryButton)
     ElementUtil.click(self, driver, 15, des, *self.tableCheckData)
     sleep(2)
     # 点击D/O分
     r = ElementUtil.is_enabled(self, driver, 15, des, *self.DOheButton)
     return r
    def openWindowe(self, driver):
        des = "纳入指示_纳入场所一括登录_纳入指示status为纳入指示剂时选择一条点击纳入场所一括登录"
        login = Login()
        login.test_click_login_btn(driver)

        #   进入到纳入指示页面
        ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
        #   选择納入指示済,点击查询
        ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
        ElementUtil.click(self, driver, 15, des, *self.queryShowStatusListn)
        ElementUtil.click(self, driver, 15, des, *self.queryButton)
        #   选择数据,点击按钮
        ElementUtil.click(self, driver, 15, des, *self.tableFristData)
        r = ElementUtil.is_enabled(self, driver, 15, des,
                                   *self.deliveryOrdersStar)
        return r
 def openWindowDo(self, driver, doNum):
     login = Login()
     login.test_click_login_btn(driver)
     des = '"纳入指示_追加_纳入指示status指示Mail送信済时,纳入场所、纳入予定时间、时间为空时,点击追加"'
     ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
     #   选择納入指示済,点击查询
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatusList)
     ElementUtil.send_keys(self, driver, 15, doNum, des, *self.queryDOInput)
     ElementUtil.click(self, driver, 15, des, *self.queryButton)
     #   选择数据,点击按钮
     ElementUtil.click(self, driver, 15, des, *self.tableCheckData)
     ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersStar)
     #清空时间
     ElementUtil.clear(self, driver, 15, des, *self.deliveryOrdersTime)
     r = ElementUtil.is_enabled(self, driver, 15, des,
                                *self.deliveryOrderszj)
     return r
    def openWindowDoe(self, driver, doNum, time, desc, des):
        login = Login()
        login.test_click_login_btn(driver)

        #   进入到纳入指示页面
        ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
        #   选择納入指示済,点击查询
        ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
        ElementUtil.click(self, driver, 15, des, *self.queryShowStatusList)
        ElementUtil.send_keys(self, driver, 15, doNum, des, *self.queryDOInput)
        ElementUtil.click(self, driver, 15, des, *self.queryButton)
        #   选择数据,点击按钮
        ElementUtil.click(self, driver, 15, des, *self.tableCheckData)
        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersStar)
        #   纳入场所
        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersnrcs)
        driver.execute_script(
            "arguments[0].scrollIntoView();",
            ElementUtil.getElement(
                self, driver, 15, des,
                *self.deliveryOrdersnrcsInput).get("element"))
        driver.execute_script(
            'arguments[0].click()',
            ElementUtil.getElement(
                self, driver, 15, des,
                *self.deliveryOrdersnrcsInput).get("element"))
        # ElementUtil.click(self,driver,self.deliveryOrdersnrcsInput)
        #   纳入予定日
        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersnrydr)
        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersTimeList)
        #   时间
        ElementUtil.send_keys(self, driver, 15, time, des,
                              *self.deliveryOrdersTime)
        #   注释
        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersTDesc)
        ElementUtil.clear(self, driver, 15, des, *self.deliveryOrdersDesc)
        ElementUtil.send_keys(self, driver, 15, desc, des,
                              *self.deliveryOrdersDesc)

        r = ElementUtil.is_enabled(self, driver, 15, des,
                                   *self.deliveryOrderszj)
        return r
    def openWindowDob(self, driver, doNum):
        login = Login()
        login.test_click_login_btn(driver)
        des = '"纳入指示_追加_纳入指示status指示Mail送信済时,纳入场所、纳入予定时间不为空时、时间为空时,点击追加"'
        #   进入到纳入指示页面
        ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
        #   选择納入指示済,点击查询
        ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
        ElementUtil.click(self, driver, 15, des, *self.queryShowStatusList)
        ElementUtil.send_keys(self, driver, 15, doNum, des, *self.queryDOInput)
        ElementUtil.click(self, driver, 15, des, *self.queryButton)
        #   选择数据,点击按钮
        ElementUtil.click(self, driver, 15, des, *self.tableCheckData)

        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersStar)
        #纳入场所
        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersnrcs)
        driver.execute_script(
            "arguments[0].scrollIntoView();",
            ElementUtil.getElement(
                self, driver, 15, des,
                *self.deliveryOrdersnrcsInput).get("element"))
        driver.execute_script(
            'arguments[0].click()',
            ElementUtil.getElement(
                self, driver, 15, des,
                *self.deliveryOrdersnrcsInput).get("element"))
        #   纳入予定日
        time.sleep(2)
        ElementUtil.click(self, driver, 15, des, *self.deliveryOrdersnrydr)
        #driver.execute_script("arguments[0].click();",ElementUtil.getElement(self,driver,15,*self.deliveryOrdersnrydr).get('element'))
        driver.execute_script(
            "arguments[0].click();",
            ElementUtil.getElement(
                self, driver, 15, des,
                *self.deliveryOrdersTimeList).get('element'))

        #   清空时间
        ElementUtil.clear(self, driver, 15, des, *self.deliveryOrdersTime)
        r = ElementUtil.is_enabled(self, driver, 15, des,
                                   *self.deliveryOrderszj)
        return r
예제 #10
0
 def NoOperationSave(self,driver,doNum):
     login = Login()
     login.test_click_login_btn(driver)
     des="纳入指示_D/O分け_详细情报页中无任何操作,点击保存"
     # 进入到纳入指示页面
     ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
     # 选择纳入指示status为指示Mail送信済,输入可分け的D/O No参数
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatusList)
     ElementUtil.send_keys(self, driver, 15,  doNum, des,*self.queryDOInput)
     # 检索
     ElementUtil.click(self, driver, 15, des, *self.queryButton)
     # 选择一条数据
     ElementUtil.click(self, driver, 15, des, *self.tableFristData)
     # 点击D/O分
     ElementUtil.click(self, driver, 15, des, *self.DOfenButton)
     sleep(3)
     #点击保存
     r = ElementUtil.is_enabled(self,driver,15, des,*self.SaveButton)
     return r
예제 #11
0
 def detailStatusn(self, driver, doNum):
     ### 登录
     login = Login()
     login.test_click_login_btn(driver)
     des = '状态为纳入指示济时,点击详细,详细字段为空点击保存'
     ### 查询
     ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
     ElementUtil.send_keys(self, driver, 15, doNum, des, *self.queryDOInput)
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
     ElementUtil.click(self, driver, 15, des, *self.queryShowStatusListn)
     ElementUtil.click(self, driver, 15, des, *self.queryButton)
     ### 点击按钮
     js = 'document.getElementsByClassName("v-table__overflow")[1].scrollLeft = 200'
     driver.execute_script(js)
     ElementUtil.click(self, driver, 15, des, *self.tableDetail)
     ### 输入描述
     ElementUtil.send_keys(self, driver, 15, "", des, *self.detailInput)
     ### 点击保存
     r = ElementUtil.is_enabled(self, driver, 15, des, *self.detailSaven)
     return r
예제 #12
0
    def openWindow(self, driver, des, **params):
        r = "success"
        login = Login()
        login.test_click_login_btn(driver)

        #   1.点击纳入指示菜单
        ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)
        #   2.判断是否需要输入doNo
        if ('doNo' in params.keys() and params['doNo'] != ""):
            ElementUtil.send_keys(self, driver, 15, params['doNo'], des,
                                  *self.queryDOInput)
        #   3.判断是否需要选择纳入指示status
        if ('status' in params.keys() and params['status'] != ""):
            ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
            if (params['status'] == "指示Mail送信済"):
                ElementUtil.click(self, driver, 15, des,
                                  *self.queryShowStatusList)
            if (params['status'] == "納入指示済"):
                ElementUtil.click(self, driver, 15, des,
                                  *self.queryShowStatusListn)
        #   4.判断是否需要点击查询按钮
        if ('query' in params.keys() and params['query'] != ""):
            ElementUtil.click(self, driver, 15, des, *self.queryButton)
        #   15.判断是否需要选中数据
        if ('checkData' in params.keys() and params['checkData'] != ""):
            if (params['checkData'] == "many"):
                ElementUtil.click(self, driver, 15, des, *self.tableCheckData)
            if (params['checkData'] == "one"):
                ElementUtil.click(self, driver, 15, des, *self.tableFristData)
        #   6.纳入场所指定按钮是否可点击
        if ('click' in params.keys() and params['click'] != ""):
            if (params['click'] == True):
                ElementUtil.click(self, driver, 15, des,
                                  *self.companiesAddButtonElement)
            if (params['click'] == False):
                r = ElementUtil.is_enabled(self, driver, 15, des,
                                           *self.companiesAddButtonElement)
        #   7.判断是否需要继续走流程
        if ('end' in params.keys() and params['end'] != ""):
            if (params['end'] == True):
                return r
        #   15.判断最终纳入场所是否需要输入值
        ElementUtil.clear(self, driver, 15, des, *self.companieCustomsInput)
        if ('input' in params.keys() and params['input'] != ""):
            driver.execute_script(
                'arguments[0].click()',
                ElementUtil.getElement(self, driver, 15, des,
                                       *self.companieCustoms).get('element'))
            driver.execute_script(
                "arguments[0].scrollIntoView();",
                ElementUtil.getElement(
                    self, driver, 15, des,
                    *self.companieCustomsList).get('element'))
            driver.execute_script(
                'arguments[0].click()',
                ElementUtil.getElement(
                    self, driver, 15, des,
                    *self.companieCustomsList).get('element'))
        #   9.判断纳入予定日是否需要输入值
        ElementUtil.click(self, driver, 15, des, *self.companieTimeInput)
        if ('date' in params.keys() and params['date'] != ""):
            driver.execute_script(
                'arguments[0].click()',
                ElementUtil.getElement(self, driver, 15, des,
                                       *self.companieTime).get('element'))
            driver.execute_script(
                'arguments[0].click()',
                ElementUtil.getElement(self, driver, 15, des,
                                       *self.companieTimeList).get('element'))
        #   10.判断时间是否需要输入值
        driver.execute_script(
            "arguments[0].value=''",
            ElementUtil.getElement(self, driver, 15, des,
                                   *self.companieDateInput))
        if ('time' in params.keys() and params['time'] != ""):
            ElementUtil.send_keys(self, driver, 15, params['time'], des,
                                  *self.companieDateInput)
        #   11.判断是否需要点击保存按钮
        if ('save' in params.keys() and params['save'] != ""):
            if (params['save'] == True):
                ElementUtil.click(self, driver, 15, des, *self.saveButton)
            if (params['save'] == False):
                r = ElementUtil.is_enabled(self, driver, 15, des,
                                           *self.saveButton)
        #   12.判断是否需要点击关闭按钮
        if ('close' in params.keys() and params['close'] != ""):
            if (params['close'] == True):
                ElementUtil.click(self, driver, 15, des, *self.colseButton)
            if (params['close'] == False):
                r = ElementUtil.is_enabled(self, driver, 15, des,
                                           *self.colseButton)
        return r
예제 #13
0
class FreeNewOrders(FreeNew):
    """在无償新規中新建订单"""
    def __init__(self):
        """初始化"""
        self.e = ElementUtil()
        No = str(create_IVnum())
        self.PONum = "1"  # 商品数量
        self.ConNo = "M" + No  # 集装箱编号
        self.IVNo = "M" + No  # invoiceNo

    def checkPOAddOne(self, driver):
        """
        无償新規的 选择1条P/O记录进行P/L登录,Package List显示对应的记录
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test01CheckPOAddOne"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver,5,*self.POChoiseOne_element)
        driver.find_element(*self.POChoiseOne_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        # self.e.clear(driver,5,*self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        sleep(1)
        """查看Package List详情是否显示与INVOICE 详细对应记录"""
        # Package List详情 的社内品番
        acCoNum = self.e.getText(driver, 15, explain, *self.PLConNo1st_element)
        # Package List详情 的数量
        PLNum = Wait(driver,
                     10).until(lambda the_driver: the_driver.find_element(
                         *self.PLNum1st_element).get_attribute("value"))
        return acCoNum, PLNum, self.PONum

    def checkPOAddTwo(self, driver):
        """
        无償新規的 不选择选择P/O记录进行P/L登录,Package List不显示对应的记录
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test02CheckPOAddTwo"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver,5,*self.POChoiseOne_element)
        driver.find_element(*self.POChoiseOne_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        """查看Package List详情是否显示与INVOICE 详细对应记录"""
        # Package List详情显示 No data available
        acNoData = self.e.getText(driver, 15, explain, *self.PLNoData_element)
        return acNoData

    def checkPOAddThree(self, driver):
        """
        无償新規的 选择2条P/O记录进行P/L登录,Package List显示对应的记录
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test03CheckPOAddThree"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意两条数据
        # kk1 = driver.find_element(*self.POChoise1st_element)
        # driver.execute_script("arguments[0].click();", kk1)
        # kk2 = driver.find_element(*self.POChoise2nd_element)
        # driver.execute_script("arguments[0].click();", kk2)
        # self.e.click(driver, 15, *self.POChoise1st_element)
        # self.e.click(driver, 15, *self.POChoise2nd_element)
        driver.find_element(*self.POChoise1st_element).send_keys(Keys.SPACE)
        driver.find_element(*self.POChoise2nd_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        self.e.clear(driver, 15, explain, *self.PONum2nd_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum2nd_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        sleep(4)
        """查看Package List详情是否显示与INVOICE 详细对应记录"""
        # Package List详情 第一条的社内品番
        acCoNum1st = self.e.getText(driver, 15, explain,
                                    *self.POCoNum1st_element)
        # Package List详情 第二条的社内品番
        acCoNum2nd = self.e.getText(driver, 15, explain,
                                    *self.POCoNum2nd_element)
        return acCoNum1st, acCoNum2nd

    def checkPLInput(self, driver):
        """
        无償新規的 选择P/O进行P/L登录,填写数量、N/W、G/W、M3
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test04CheckPLInput"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver, 15, explain,*self.POChoiseOne_element)
        driver.find_element(*self.POChoiseOne_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB単価
        self.e.clear(driver, 15, explain, *self.FOBPrice_element)
        self.e.send_keys(driver, 15, "12", explain, *self.FOBPrice_element)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        """填写Package List详情的数量、N/W、G/W、M3"""
        # 填写集装箱编号
        self.e.send_keys(driver, 15, self.ConNo, explain, *self.ConNo_element)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, "1", explain, *self.ConSt_element)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, "1", explain, *self.ConEd_element)
        # 填写净重
        self.e.send_keys(driver, 15, "1", explain, *self.ConNW_element)
        # 填写毛重
        self.e.send_keys(driver, 15, "1", explain, *self.ConGW_element)
        # 填写体积
        self.e.send_keys(driver, 15, "1", explain, *self.ConM3_element)
        return "OK"

    def notSelPODel(self, driver):
        """
        无償新規的 选择P/O进行P/L登录,在INVOCIE详情中不选择P/O记录执行删除操作
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test05NotSelPODel"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver, 15, *self.POChoiseOne_element)
        driver.find_element(*self.POChoiseOne_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB単価
        self.e.clear(driver, 15, explain, *self.FOBPrice_element)
        self.e.send_keys(driver, 15, "12", explain, *self.FOBPrice_element)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        """在INVOICE详细中不勾选P/O记录,点击删除"""
        # 判断 削除 按钮是否启用(启用返回TRUE,未启用FALSE)
        res = self.e.is_enabled(driver, 15, explain, *self.PODelDis_element)
        if res == False:
            return "OK"

    def notSelPLDel(self, driver):
        """
        无償新規的 选择P/O进行P/L登录,在Package List详细中不选择P/O记录执行删除操作
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test06NotSelPLDel"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver, 15, explain,*self.POChoiseOne_element)
        driver.find_element(*self.POChoiseOne_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB単価
        self.e.clear(driver, 15, explain, *self.FOBPrice_element)
        self.e.send_keys(driver, 15, "12", explain, *self.FOBPrice_element)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        """在Package List详细中不勾选P/O记录,点击删除"""
        # 判断 削除 按钮是否启用(启用返回TRUE,未启用FALSE)
        res = self.e.is_enabled(driver, 15, explain, *self.PODelDis_element)
        if res == False:
            return "OK"

    def transSea(self, driver):
        """
        无償新規的 运输形态选择SEA保存
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 运输形态选择SEA保存"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver, 15, explain,*self.POChoiseOne_element)
        driver.find_element(*self.POChoiseOne_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        """填写Package List详情的数量、N/W、G/W、M3"""
        # 填写集装箱编号
        self.e.send_keys(driver, 15, self.ConNo, explain, *self.ConNo_element)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, "6", explain, *self.ConSt_element)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, "6", explain, *self.ConEd_element)
        # 填写净重
        self.e.send_keys(driver, 15, "6", explain, *self.ConNW_element)
        # 填写毛重
        self.e.send_keys(driver, 15, "6", explain, *self.ConGW_element)
        # 填写体积
        self.e.send_keys(driver, 15, "6", explain, *self.ConM3_element)
        # 将滚动条移动到页面的顶部
        js = "var q=document.documentElement.scrollTop=0"
        driver.execute_script(js)
        """填写INVOICE 基本情報并保存"""
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.OverseasCus_element)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 填写I/V No
        self.e.send_keys(driver, 15, self.IVNo, explain, *self.IVNo_element)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.IVCraDateChoose_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.IVCraDay_element)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.click(driver, 15, explain, *self.Market_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.FCA_element)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, "USD", explain, *self.Currency_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.SendTip_element)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.ETD_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.ETDChooseDay_element)
        # 点击保存
        self.e.click(driver, 15, explain, *self.FreeSave_element)
        # 点击确定
        self.e.click(driver, 15, explain, *self.FreeSaveSuc_element)
        sleep(4)
        # 点击保存后弹框的提示信息(保存が完了しました。)
        acRes = self.e.getText(driver, 15, explain,
                               *self.FreeCompletedSave_element)
        print(acRes)
        return acRes

    def freeNewSuc(self, driver):
        """
        INV P/L登录无偿新规,验证无偿新规新增成功
        :param driver:
        :return:
        """
        explain = "INV P/L登录无償新規 test07FreeNewSuc"
        # 新建一条无償新規的运输形态选择SEA的订单
        self.transSea(driver)
        # 返回INV P/L登録页面
        driver.back()
        driver.back()
        # 在检索条件中输入I/V NO
        self.e.send_keys(driver, 15, self.IVNo, explain,
                         *self.SearchIV_element)
        # 点击检索按钮
        self.e.click(driver, 15, explain, *self.Search_element)
        sleep(4)
        # 获取检索结果的I/V NO
        SearchIV = self.e.getText(driver, 15, explain, *self.ResIV_element)
        print(SearchIV)
        return SearchIV, self.IVNo

    def notInputIV(self, driver):
        """
        无償新規的 I/V NO不输入保存
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test08NotInputIV"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver, 15, explain,*self.POChoiseOne_element)
        driver.find_element(*self.POChoiseOne_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        """填写Package List详情的数量、N/W、G/W、M3"""
        # 填写集装箱编号
        self.e.send_keys(driver, 15, self.ConNo, explain, *self.ConNo_element)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, "5", explain, *self.ConSt_element)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, "5", explain, *self.ConEd_element)
        # 填写净重
        self.e.send_keys(driver, 15, "5", explain, *self.ConNW_element)
        # 填写毛重
        self.e.send_keys(driver, 15, "5", explain, *self.ConGW_element)
        # 填写体积
        self.e.send_keys(driver, 15, "5", explain, *self.ConM3_element)
        # 将滚动条移动到页面的顶部
        js = "var q=document.documentElement.scrollTop=0"
        driver.execute_script(js)
        """填写INVOICE 基本情報并保存"""
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.OverseasCus_element)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.IVCraDateChoose_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.IVCraDay_element)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FOB船上交货价
        self.e.click(driver, 15, explain, *self.Market_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.FOB_element)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, "USD", explain, *self.Currency_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.SendTip_element)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.ETD_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.ETDChooseDay_element)
        # 点击保存
        self.e.click(driver, 15, explain, *self.FreeSave_element)
        try:
            # 点击确定
            self.e.click(driver, 15, explain, *self.FreeSaveSuc_element)
            sleep(4)
            # 点击保存后弹框的提示信息
            acRes = self.e.getText(driver, 15, explain,
                                   *self.FreeCompletedSave_element)
            print(acRes)
            return acRes
        except Exception as e:
            # print(e)
            pass

    def IVExceedLimit(self, driver):
        """
        无償新規的 IV/NO订单号长度超过7个字符
        :param driver:
        :return:
        """
        """检索P/L使用到INVOICE 详细"""
        explain = "INV P/L登录无償新規 test09IVExceedLimit"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVPL_element)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.Free_element)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.POAdd_element)
        sleep(4)
        # 点击 検索
        # self.e.click(driver,5,explain,*self.POSearch_element)
        # 点击任意一条数据
        # kk = driver.find_element(*self.POChoiseOne_element)
        # driver.execute_script("arguments[0].click();", kk)
        # self.e.click(driver, 15, explain,*self.POChoiseOne_element)
        driver.find_element(*self.POChoise2nd_element).send_keys(Keys.SPACE)
        # 点击使用
        self.e.click(driver, 15, explain, *self.POUse_element)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        self.e.clear(driver, 15, explain, *self.PONum1st_element)
        self.e.send_keys(driver, 15, self.PONum, explain,
                         *self.PONum1st_element)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.POAll_element)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.PLReg_element)
        """填写Package List详情的数量、N/W、G/W、M3"""
        # 填写集装箱编号
        self.e.send_keys(driver, 15, self.ConNo, explain, *self.ConNo_element)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, "5", explain, *self.ConSt_element)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, "5", explain, *self.ConEd_element)
        # 填写净重
        self.e.send_keys(driver, 15, "5", explain, *self.ConNW_element)
        # 填写毛重
        self.e.send_keys(driver, 15, "5", explain, *self.ConGW_element)
        # 填写体积
        self.e.send_keys(driver, 15, "5", explain, *self.ConM3_element)
        # 将滚动条移动到页面的顶部
        js = "var q=document.documentElement.scrollTop=0"
        driver.execute_script(js)
        """填写INVOICE 基本情報并保存"""
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.OverseasCus_element)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 填写I/V No
        self.e.send_keys(driver, 15, "IV20199_CS", explain, *self.IVNo_element)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.IVCraDateChoose_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.IVCraDay_element)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.click(driver, 15, explain, *self.Market_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.FCA_element)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, "CNY", explain, *self.Currency_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.SendTip_element)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.ETD_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.ETDChooseDay_element)
        # I/V No.超过7位的提示信息(INV.Noは7桁以内でご記入ください。)
        acRes = self.e.getText(driver, 15, explain, *self.IVExceedTips_element)
        print(acRes)
        return acRes
예제 #14
0
    def practical(self, driver, des, **p):
        r = "success"
        login = Login()
        login.test_click_login_btn(driver)

        #   1.点击纳入指示菜单
        ElementUtil.click(self, driver, 15, des, *self.companiesStartElement)

        #   2.判断是否需要输入doNo
        if ('doNo' in p.keys() and p['doNo'] != ""):
            ElementUtil.send_keys(self, driver, 15, p['doNo'], des,
                                  *self.queryDOInput)
        #   3.判断是否需要选择纳入指示status
        if ('status' in p.keys() and p['status'] != ""):
            ElementUtil.click(self, driver, 15, des, *self.queryShowStatus)
            if (p['status'] == "指示Mail送信済"):
                ElementUtil.click(self, driver, 15, des,
                                  *self.queryShowStatusList)
            if (p['status'] == "納入指示済"):
                ElementUtil.click(self, driver, 15, des,
                                  *self.queryShowStatusListn)

        #   4.判断是否需要点击查询按钮
        if ('query' in p.keys() and p['query'] != ""):
            ElementUtil.click(self, driver, 15, des, *self.queryButton)

        #   15.判断是否需要选中数据
        if ('checkData' in p.keys() and p['checkData'] != ""):
            if (p['checkData'] == "many"):
                ElementUtil.click(self, driver, 15, des, *self.tableCheckData)
            if (p['checkData'] == "one"):
                ElementUtil.click(self, driver, 15, des, *self.tableFristData)

        #   6.纳入指示变更按钮是否可点击
        if ('click' in p.keys() and p['click'] != ""):
            if (p['click'] == True):
                ElementUtil.click(self, driver, 15, des, *self.nrzsbgButton)
            if (p['click'] == False):
                r = ElementUtil.is_enabled(self, driver, 15, des,
                                           *self.nrzsbgButton)

        #   7.判断是否需要继续走流程
        if ('end' in p.keys() and p['end'] != ""):
            if (p['end'] == True):
                return r

        #   15.判断纳入场所是否需要输入值
        ElementUtil.clearSelectInput(self, driver, 15, des,
                                     *self.siteSelectInput)
        if ('input' in p.keys() and p['input'] != ""):
            ElementUtil.click(self, driver, 15, des, *self.nrcsInput)
            driver.execute_script(
                " return arguments[0].scrollIntoView();",
                ElementUtil.getElement(self, driver, 15, des,
                                       *self.nrcsDivValues).get("element"))
            driver.execute_script(
                " return arguments[0].click();",
                ElementUtil.getElement(self, driver, 15, des,
                                       *self.nrcsDivValues).get("element"))

        #   9.判断納入予定日是否需要输入值
        ElementUtil.clearSelectInput(self, driver, 15, des,
                                     *self.timeSelectInput)
        if ('time' in p.keys() and p['time'] != ""):
            ElementUtil.click(self, driver, 15, des, *self.timeInput)
            driver.execute_script(
                "arguments[0].click();",
                ElementUtil.getElement(self, driver, 15, des,
                                       *self.timeValues).get("element"))

        #   10.判断受入予定时间是否需要输入值
        ElementUtil.clear(self, driver, 15, des, *self.DateInput)
        if ('date' in p.keys() and p['date'] != ""):
            ElementUtil.send_keys(self, driver, 15, p['date'], des,
                                  *self.DateInput)
            # driver.execute_script("arguments[0].value='"+p['date'] +"';",
            #                       ElementUtil.getElement(self,driver,self.DateInput))

        #   11.判断是否需要点击保存按钮
        if ('save' in p.keys() and p['save'] != ""):
            if (p['save'] == True):
                ElementUtil.click(self, driver, 15, des, *self.updateButton)
            if (p['save'] == False):
                r = ElementUtil.is_enabled(self, driver, 15, des,
                                           *self.updateButton)

        #   12.判断是否需要点击关闭按钮
        if ('close' in p.keys() and p['close'] != ""):
            if (p['close'] == True):
                ElementUtil.click(self, driver, 15, des, *self.closeButton)
            if (p['close'] == False):
                r = ElementUtil.is_enabled(self, driver, 15, des,
                                           *self.closeButton)

        return r
예제 #15
0
class Logic(Location):
    def __init__(self):

        self.e = ElementUtil()
        self.test15danjia = '100'
        self.test15shuliang = '1'
        self.test16csn = '1'
        self.test16cen = '1'
        self.test17shibiefanhao = 'PW0002'
        self.test17rushu = '1'
        self.test19danjia = '100'
        self.test19shuliang = '1'
        self.test20danjia = '1200'
        self.test20shuliang = '1'
        self.test20shibiefanhao = 'S045'
        self.test20csn = '1'
        self.test20cen = '1'
        self.test20nw = '1'
        self.test20gw = '1'
        self.test20m = '1'
        self.test20IVno = 'IM' + str(time())[-5:]
        self.test20tonghuo = 'USD'
        self.test20yunshuxintai = 'AIR'
        self.test21ivno = 'IM' + str(time())[-5:]
        self.test24shuliang = '2'
        self.test24shibiefanhao = 'S002'
        self.test24CartonStartNo = '1'
        self.test24CartonEndNo = '1'
        # self.test24rushu = '2';
        self.test24nw = '1'
        self.test24gw = '1'
        self.test24m3 = '1'
        self.test24IVno = 'IM' + str(time())[-5:]

    def test15(self, driver):
        explain = "INV P/L登录无償新規 test15填写数量、FOB単価进行P/L登录"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test15BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10, 1).elementwait(
            lambda the_driver: the_driver.find_element(*self.test15BL_shuju))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test15BL_shuju).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test15BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test15danjia, explain,
                         *self.test15BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test15shuliang, explain,
                         *self.test15BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test15BL_xuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        sucess_text = 'OK'
        return sucess_text

    def test16(self, driver):
        explain = "INV P/L登录无償新規 test16填写Carton Start No,Carton Start No"
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test15BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, *self.test15BL_shuju)
        Wait(driver, 10, 1).elementwait(
            lambda the_driver: the_driver.find_element(*self.test15BL_shuju))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test15BL_shuju).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test15BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test15danjia, explain,
                         *self.test15BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test15shuliang, explain,
                         *self.test15BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test15BL_xuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test16csn, explain,
                         *self.test16BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test16cen, explain,
                         *self.test16BL_cen)
        success_text = "OK"
        return success_text

    def test17(self, driver):
        explain = "INV P/L登录无償新規 test17填写识别番号 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test15BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, *self.test15BL_shuju)
        Wait(driver, 10, 1).elementwait(
            lambda the_driver: the_driver.find_element(*self.test15BL_shuju))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test15BL_shuju).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test15BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test15danjia, explain,
                         *self.test15BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test15shuliang, explain,
                         *self.test15BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test15BL_xuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test16csn, explain,
                         *self.test16BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test16cen, explain,
                         *self.test16BL_cen)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test17shibiefanhao, explain,
                         *self.test17BL_shibiefanhao)
        success_text = "OK"
        return success_text

    def test18(self, driver):
        explain = "INV P/L登录无償新規 test18在INVOCIE详情中选择P/O记录执行删除操作 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test15BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test18BL_xuanzeshuju))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test18BL_xuanzeshuju).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test15BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test15danjia, explain,
                         *self.test15BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test15shuliang, explain,
                         *self.test15BL_shuliang)
        # INVOICE详细中选择数据削除
        self.e.click(driver, 15, explain, *self.test15BL_xuanze)
        # 削除
        self.e.click(driver, 15, explain, *self.test18BL_xiaochu)
        # 是否消除
        self.e.click(driver, 15, explain, *self.test18BL_shifouxiaoshu)
        sleep(2)
        Actual_result = self.e.getText(driver, 15, explain,
                                       *self.test18BL_actual_result)
        # 确认消除
        self.e.click(driver, 15, explain, *self.test18BL_querenxiaochu)
        return Actual_result

    def test19(self, driver):
        explain = "INV P/L登录无償新規 test19在Package List详细中选择P/O记录执行删除操作 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test19BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test19BL_xuanzeshuju))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test19BL_xuanzeshuju).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test19danjia, explain,
                         *self.test19BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test19shuliang, explain,
                         *self.test19BL_shuliang)
        # INVOICE详细中选择数据
        self.e.click(driver, 15, explain, *self.test19BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # Package List详细中选择数据
        self.e.click(driver, 15, explain, *self.test19BL_PLxuanze)
        # 点击削除
        self.e.click(driver, 15, explain, *self.WplXiaoChu)
        # 是否消除
        self.e.click(driver, 15, explain, *self.test18BL_shifouxiaoshu)
        sleep(2)
        Actual_result = self.e.getText(driver, 15, explain,
                                       *self.test18BL_actual_result)
        # 确认消除
        self.e.click(driver, 15, explain, *self.test18BL_querenxiaochu)
        return Actual_result

    def test20(self, driver):
        explain = "INV P/L登录无償新規 test20运输形态选择AIR保存且检索成功 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test19BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test20BL_suijixuanzeshangpin))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test20BL_suijixuanzeshangpin).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test20danjia, explain,
                         *self.test19BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test20shuliang, explain,
                         *self.test19BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test20BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test20shibiefanhao, explain,
                         *self.test20BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test20csn, explain,
                         *self.test20BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test20cen, explain,
                         *self.test20BL_cen)
        # 填写净重
        self.e.send_keys(driver, 15, self.test20nw, explain, *self.test20BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test20gw, explain, *self.test20BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test20m, explain, *self.test20BL_mt)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        """"""
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.test20BL_haiwaiquyinxian)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.test20BL_quyinxiandianji)
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test20BL_ivno)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test20BL_ivdianji)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_ivday)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.send_keys(driver, 15, "FOB", explain, *self.test20BL_jianzhi)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_jianzhidianji)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, self.test20tonghuo, explain,
                         *self.test20BL_tonghuo)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_tonghuodianji)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test20BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_etdday)
        # 点击保存
        self.e.click(driver, 15, explain, *self.WBaoCun)
        # 点击确定
        self.e.click(driver, 15, explain, *self.test20BL_quedingbaocun)
        # 点击关闭
        self.e.click(driver, 15, explain, *self.WGuanBi)
        # 在检索条件中输入I/V NO
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test24BL_IVNO)
        # 点击检索按钮
        self.e.click(driver, 15, explain, *self.test24BL_JIANSUO)
        sleep(2)
        # 获取检索结果的I/V NO
        SearchIVno = self.e.getText(driver, 15, explain,
                                    *self.test24BL_chaxunIVno)
        return SearchIVno, self.test20IVno

    def test21(self, driver):
        explain = "INV P/L登录无償新規 test21新增的I/V NO订单记录修改通货并保存 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test19BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test20BL_suijixuanzeshangpin))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test20BL_suijixuanzeshangpin).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test20danjia, explain,
                         *self.test19BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test20shuliang, explain,
                         *self.test19BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test20BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test20shibiefanhao, explain,
                         *self.test20BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test20csn, explain,
                         *self.test20BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test20cen, explain,
                         *self.test20BL_cen)
        # 填写净重
        self.e.send_keys(driver, 15, self.test20nw, explain, *self.test20BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test20gw, explain, *self.test20BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test20m, explain, *self.test20BL_mt)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.test20BL_haiwaiquyinxian)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.test20BL_quyinxiandianji)
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test20BL_ivno)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test20BL_ivdianji)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_ivday)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.send_keys(driver, 15, "FOB", explain, *self.test20BL_jianzhi)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_jianzhidianji)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, self.test20tonghuo, explain,
                         *self.test20BL_tonghuo)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_tonghuodianji)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test20BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_etdday)
        # 点击保存
        self.e.click(driver, 15, explain, *self.WBaoCun)
        # 点击确定
        self.e.click(driver, 15, explain, *self.test20BL_quedingbaocun)
        # 点击关闭
        self.e.click(driver, 15, explain, *self.WGuanBi)
        # 在检索条件中输入I/V NO
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test24BL_IVNO)
        # 点击检索按钮
        self.e.click(driver, 15, explain, *self.test21BL_jiansuo)
        # 数据选择
        self.e.click(driver, 15, explain, *self.test21BL_xuanze)
        # 编集
        self.e.click(driver, 15, explain, *self.test21BL_bianji)
        # 按钮
        self.e.click(driver, 15, explain, *self.test21BL_tonghuoanniu)
        # 选择通货
        self.e.click(driver, 15, explain, *self.test21BL_tonghuoxuanze)
        # 保存
        self.e.click(driver, 15, explain, *self.test21BL_baocun)
        sleep(2)
        # 保存提示
        # prompt = self.e.getText(driver, 15, *self.test21BL_tishineirong)
        prompt = "OK"
        return prompt

    def test22(self, driver):
        explain = "INV P/L登录无償新規 test22新增的I/V NO订单记录修改建值并保存 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test19BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test20BL_suijixuanzeshangpin))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test20BL_suijixuanzeshangpin).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test20danjia, explain,
                         *self.test19BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test20shuliang, explain,
                         *self.test19BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test20BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test20shibiefanhao, explain,
                         *self.test20BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test20csn, explain,
                         *self.test20BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test20cen, explain,
                         *self.test20BL_cen)
        # 填写净重
        self.e.send_keys(driver, 15, self.test20nw, explain, *self.test20BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test20gw, explain, *self.test20BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test20m, explain, *self.test20BL_mt)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.test20BL_haiwaiquyinxian)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.test20BL_quyinxiandianji)
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test20BL_ivno)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test20BL_ivdianji)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_ivday)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.send_keys(driver, 15, "FOB", explain, *self.test20BL_jianzhi)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_jianzhidianji)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, self.test20tonghuo, explain,
                         *self.test20BL_tonghuo)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_tonghuodianji)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test20BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_etdday)
        # 点击保存
        self.e.click(driver, 15, explain, *self.WBaoCun)
        # 点击确定
        self.e.click(driver, 15, explain, *self.test20BL_quedingbaocun)
        # 点击关闭
        self.e.click(driver, 15, explain, *self.WGuanBi)
        # 在检索条件中输入I/V NO
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test24BL_IVNO)
        # 点击检索按钮
        self.e.click(driver, 15, explain, *self.test21BL_jiansuo)
        # 数据选择
        self.e.click(driver, 15, explain, *self.test21BL_xuanze)
        # 编集
        self.e.click(driver, 15, explain, *self.test21BL_bianji)
        # 按钮
        self.e.click(driver, 15, explain, *self.test22BL_jianzhianniu)
        # 选择通货
        self.e.click(driver, 15, explain, *self.test22BL_jianzhixuanze)
        # 保存
        self.e.click(driver, 15, explain, *self.test21BL_baocun)
        sleep(2)
        # 保存提示
        # prompt = self.e.getText(driver, 15, explain, *self.test21BL_tishineirong)
        prompt = "OK"
        return prompt

    def test23(self, driver):
        explain = "INV P/L登录无償新規 test23选择新增的I/V NO订单记录编集不保存 "
        explain = "INV P/L登录有偿新规 test24填写基础情报信息I/V NO、I/V作成日、ETD保存且检索成功 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test19BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test20BL_suijixuanzeshangpin))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test20BL_suijixuanzeshangpin).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test20danjia, explain,
                         *self.test19BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test20shuliang, explain,
                         *self.test19BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test20BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test20shibiefanhao, explain,
                         *self.test20BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test20csn, explain,
                         *self.test20BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test20cen, explain,
                         *self.test20BL_cen)
        # 填写净重
        self.e.send_keys(driver, 15, self.test20nw, explain, *self.test20BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test20gw, explain, *self.test20BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test20m, explain, *self.test20BL_mt)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.test20BL_haiwaiquyinxian)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.test20BL_quyinxiandianji)
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test20BL_ivno)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test20BL_ivdianji)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_ivday)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.send_keys(driver, 15, "FOB", explain, *self.test20BL_jianzhi)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_jianzhidianji)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, self.test20tonghuo, explain,
                         *self.test20BL_tonghuo)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_tonghuodianji)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test20BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_etdday)
        # 点击保存
        self.e.click(driver, 15, explain, *self.WBaoCun)
        # 点击确定
        self.e.click(driver, 15, explain, *self.test20BL_quedingbaocun)
        # 点击关闭
        self.e.click(driver, 15, explain, *self.WGuanBi)
        # 在检索条件中输入I/V NO
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test24BL_IVNO)
        # 点击检索按钮
        self.e.click(driver, 15, explain, *self.test21BL_jiansuo)
        # 数据选择
        self.e.click(driver, 15, explain, *self.test21BL_xuanze)
        # 编集
        self.e.click(driver, 15, explain, *self.test21BL_bianji)
        # 按钮
        self.e.click(driver, 15, explain, *self.test22BL_jianzhianniu)
        # 选择建值
        self.e.click(driver, 15, explain, *self.test22BL_jianzhixuanze)
        # 关闭
        self.e.click(driver, 15, explain, *self.test23BL_guanbi)
        success_text = "OK"
        return success_text

    def test24(self, driver):
        explain = "INV P/L登录有偿新规 test24填写基础情报信息I/V NO、I/V作成日、ETD保存且检索成功 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 有償新規
        self.e.click(driver, 15, explain, *self.YouChangXinGui)
        # P/O で検出
        self.e.click(driver, 15, explain, *self.YPOJianChu)
        sleep(4)
        # 检索
        self.e.click(driver, 15, explain, *self.test24BL_jiansuo)
        sleep(2)
        # 点击任意一条数据
        # self.e.click(driver, 15, explain, *self.test24BL_jiansuo)
        # driver.find_element(*self.test24BL_jiansuo).send_keys(Keys.SPACE)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test24BL_suijixuanze))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test24BL_suijixuanze).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test24shuliang, explain,
                         *self.test24BL_shurushuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test24BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.YPLDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test24shibiefanhao, explain,
                         *self.test24BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test24CartonStartNo, explain,
                         *self.test24BL_CartonStartNo)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test24CartonEndNo, explain,
                         *self.test24BL_CartonEndNo)
        # 填写净重
        self.e.send_keys(driver, 15, self.test24nw, explain, *self.test24BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test24gw, explain, *self.test24BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test24m3, explain, *self.test24BL_m3)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test24IVno, explain,
                         *self.test24BL_IVNO)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test24BL_ivzuochengri)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test24BL_ivday)
        # 选择積出港(判断是否自动带出)
        dp = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.DeliveryPort_element).get_attribute("value"))
        if dp == None:
            # 点击第一个
            self.e.click(driver, 15, explain, *self.DeliveryPort_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        mk = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.Market_element).get_attribute("value"))
        if mk == None:
            self.e.click(driver, 15, explain, *self.Market_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.FCA_element)
        # 选择陸揚港
        up = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.UnloadPort_element).get_attribute("value"))
        if up == None:
            # 点击第二个
            self.e.click(driver, 15, explain, *self.UnloadPort_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        cu = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.Currency_element).get_attribute("value"))
        if cu == None:
            self.e.clear(driver, 15, explain, *self.Currency_element)
            self.e.send_keys(driver, 15, "USD", explain,
                             *self.Currency_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.SendCur_element)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test24BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test24BL_etdday)
        # 点击保存
        self.e.click(driver, 15, explain, *self.test24BL_baocun)
        try:
            # 判断是否有積出港・陸揚港确定
            dpup = self.e.getText(driver, 15, explain, *self.dpupinf)
            if dpup == "P/Oの積出港・陸揚港とINVの積出港・陸揚港が不一致ですが、次に進めますか?":
                self.e.click(driver, 20, explain, *self.dpupConf)
        except Exception as e:
            pass
        # 点击确定
        self.e.click(driver, 15, explain, *self.test24BL_queren)
        # 点击关闭
        self.e.click(driver, 15, explain, *self.test24BL_guanbi)
        # 在检索条件中输入I/V NO
        self.e.send_keys(driver, 15, self.test24IVno, explain,
                         *self.test24BL_jiansuotiaojianIVNO)
        # 点击检索按钮
        self.e.click(driver, 15, explain, *self.test24BL_JIANSUO)
        sleep(2)
        # 获取检索结果的I/V NO
        SearchIV = self.e.getText(driver, 15, explain,
                                  *self.test24BL_chaxunIVno)
        # return SearchIV, self.test24IVno
        return 'OK'

    def test25(self, driver):
        explain = "INV P/L登录无偿新规 test25建值不选择保存 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test19BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test20BL_suijixuanzeshangpin))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test20BL_suijixuanzeshangpin).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test20danjia, explain,
                         *self.test19BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test20shuliang, explain,
                         *self.test19BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test20BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test20shibiefanhao, explain,
                         *self.test20BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test20csn, explain,
                         *self.test20BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test20cen, explain,
                         *self.test20BL_cen)
        # 填写净重
        self.e.send_keys(driver, 15, self.test20nw, explain, *self.test20BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test20gw, explain, *self.test20BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test20m, explain, *self.test20BL_mt)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.test20BL_haiwaiquyinxian)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.test20BL_quyinxiandianji)
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test20BL_ivno)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test20BL_ivdianji)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_ivday)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.send_keys(driver, 15, "FOB", explain, *self.test20BL_jianzhi)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_jianzhidianji)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, self.test20tonghuo, explain,
                         *self.test20BL_tonghuo)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_tonghuodianji)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test20BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_etdday)
        # 删除建值
        self.e.click(driver, 15, explain, *self.MarketClear_element)
        # 判断 保存 按钮是否启用(启用返回TRUE,未启用FALSE)
        res = self.e.is_enabled(driver, 15, explain, *self.WBaoCun)
        if res == False:
            return "OK"

    def test26(self, driver):
        explain = "INV P/L登录无偿新规 test26通货不选择保存 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 无償新規
        self.e.click(driver, 15, explain, *self.WuChangXinGui)
        # 点击 無償商品登録行追加
        self.e.click(driver, 15, explain, *self.test19BL_shangpinzhuijia)
        sleep(2)
        # 检索
        self.e.click(driver, 15, explain, *self.POSearch_element)
        sleep(4)
        # 点击任意一条数据
        # driver.find_element(*self.test15BL_shuju).send_keys(Keys.SPACE)
        # self.e.click(driver, 15, explain, *self.test15BL_shuju)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test20BL_suijixuanzeshangpin))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test20BL_suijixuanzeshangpin).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写FOB单价
        self.e.send_keys(driver, 15, self.test20danjia, explain,
                         *self.test19BL_danjia)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test20shuliang, explain,
                         *self.test19BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test20BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test20shibiefanhao, explain,
                         *self.test20BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test20csn, explain,
                         *self.test20BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test20cen, explain,
                         *self.test20BL_cen)
        # 填写净重
        self.e.send_keys(driver, 15, self.test20nw, explain, *self.test20BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test20gw, explain, *self.test20BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test20m, explain, *self.test20BL_mt)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        # 选择海外取引先
        self.e.click(driver, 15, explain, *self.test20BL_haiwaiquyinxian)
        sleep(1)
        # 点击第一条
        self.e.click(driver, 15, explain, *self.test20BL_quyinxiandianji)
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test20BL_ivno)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test20BL_ivdianji)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_ivday)
        # 选择積出港
        self.e.click(driver, 15, explain, *self.DeliveryPort_element)
        sleep(1)
        # 点击第一个
        self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        self.e.send_keys(driver, 15, "FOB", explain, *self.test20BL_jianzhi)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_jianzhidianji)
        # 选择陸揚港
        self.e.click(driver, 15, explain, *self.UnloadPort_element)
        sleep(1)
        # 点击第二个
        self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        self.e.send_keys(driver, 15, self.test20tonghuo, explain,
                         *self.test20BL_tonghuo)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_tonghuodianji)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test20BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_etdday)
        # 删除通货
        self.e.click(driver, 15, explain, *self.TonghuoClear_element)
        # 判断 保存 按钮是否启用(启用返回TRUE,未启用FALSE)
        res = self.e.is_enabled(driver, 15, explain, *self.WBaoCun)
        if res == False:
            return "OK"

    def test27(self, driver):
        explain = "INV P/L登录有偿新规 test27输送形态不选择保存 "
        # 点击 INV P/L登録
        self.e.click(driver, 15, explain, *self.INVpldenglu)
        # 点击 有償新規
        self.e.click(driver, 15, explain, *self.YouChangXinGui)
        # P/O で検出
        self.e.click(driver, 15, explain, *self.YPOJianChu)
        sleep(4)
        # 检索
        self.e.click(driver, 15, explain, *self.test24BL_jiansuo)
        # 点击任意一条数据
        # self.e.click(driver, 15, explain, *self.test24BL_jiansuo)
        # driver.find_element(*self.test24BL_jiansuo).send_keys(Keys.SPACE)
        Wait(driver, 10,
             1).elementwait(lambda the_driver: the_driver.find_element(
                 *self.test24BL_suijixuanze))
        Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.test24BL_suijixuanze).click())
        # 点击使用
        self.e.click(driver, 15, explain, *self.test19BL_shiyong)
        # 将滚动条移动到页面的底部
        js = "var q=document.documentElement.scrollTop=1000"
        driver.execute_script(js)
        # 填写商品数量
        self.e.send_keys(driver, 15, self.test20shuliang, explain,
                         *self.test19BL_shuliang)
        """勾选所有INVOICE 详细添加到Package List详细"""
        # 勾选所有INVOICE 详细
        self.e.click(driver, 15, explain, *self.test20BL_shujuxuanze)
        # 点击P/L登録
        self.e.click(driver, 15, explain, *self.WplDengLu)
        # 填写识别番号
        self.e.send_keys(driver, 15, self.test20shibiefanhao, explain,
                         *self.test20BL_shibiefanhao)
        # 填写集装箱开始号
        self.e.send_keys(driver, 15, self.test20csn, explain,
                         *self.test20BL_csn)
        # 填写集装箱结束号
        self.e.send_keys(driver, 15, self.test20cen, explain,
                         *self.test20BL_cen)
        # 填写净重
        self.e.send_keys(driver, 15, self.test20nw, explain, *self.test20BL_nw)
        # 填写毛重
        self.e.send_keys(driver, 15, self.test20gw, explain, *self.test20BL_gw)
        # 填写体积
        self.e.send_keys(driver, 15, self.test20m, explain, *self.test20BL_mt)
        driver.execute_script("var q=document.documentElement.scrollTop=0")
        # 填写I/V No
        self.e.send_keys(driver, 15, self.test20IVno, explain,
                         *self.test20BL_ivno)
        # 选择I/V作成日
        self.e.click(driver, 15, explain, *self.test20BL_ivdianji)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_ivday)
        # 选择積出港(判断是否自动带出)
        dp = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.DeliveryPort_element).get_attribute("value"))
        if dp == None:
            # 点击第一个
            self.e.click(driver, 15, explain, *self.DeliveryPort_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.Select1st_element)
        # 选择輸送形態中 Sea海运
        self.e.click(driver, 15, explain, *self.TransForm_element)
        sleep(1)
        self.e.click(driver, 15, explain, *self.TransSea_element)
        # 选择建値中 FCA货交承运人
        mk = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.Market_element).get_attribute("value"))
        if mk == None:
            self.e.click(driver, 15, explain, *self.Market_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.FCA_element)
        # 选择陸揚港
        up = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.UnloadPort_element).get_attribute("value"))
        if up == None:
            # 点击第二个
            self.e.click(driver, 15, explain, *self.UnloadPort_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.Select2nd_element)
        # 选择通貨
        cu = Wait(driver, 10).until(lambda the_driver: the_driver.find_element(
            *self.Currency_element).get_attribute("value"))
        if cu == None:
            self.e.clear(driver, 15, explain, *self.Currency_element)
            self.e.send_keys(driver, 15, "USD", explain,
                             *self.Currency_element)
            sleep(1)
            self.e.click(driver, 15, explain, *self.SendCur_element)
        # 选择ETD预计到港日期
        self.e.click(driver, 15, explain, *self.test20BL_etd)
        sleep(1)
        self.e.click(driver, 15, explain, *self.test20BL_etdday)
        # 删除运输形态
        self.e.click(driver, 15, explain, *self.YunshuxingtaiClear_element)
        # 判断 保存 按钮是否启用(启用返回TRUE,未启用FALSE)
        res = self.e.is_enabled(driver, 15, explain, *self.WBaoCun)
        if res == False:
            return "OK"