def login(username, ext, password): driver.find_element_by_id('orgUserId').send_keys(username) driver.find_element_by_id('orgUserIdExt').send_keys(ext) driver.find_element_by_id('orgPassword').send_keys(password) driver.find_element_by_xpath( '//*[@id="orgAccountMode"]/table/tbody/tr[4]/td/table/tbody/tr/td[1]/a/div' ).click()
def fill_new_item_page(tender_way): if tender_way == 1: # 新增一個品項 # 品項名稱 driver.find_element_by_xpath( '//*[@id="tpamTenderItemToList[0].itemName"]').send_keys('測試品項') # 預估數量 driver.find_element_by_xpath( '//*[@id="tpamTenderItemToList[0].itemQty"]').send_keys('1') # 單位 driver.find_element_by_xpath( '//*[@id="tpamTenderItemToList[0].itemUnit"]').send_keys('1') # 預算金額 driver.find_element_by_xpath('//*[@id="itemAmount_0"]').send_keys( '5000') # 下一頁 driver.find_element_by_xpath('//*[@id="Next_page"]').click()
def select_tender_way_1(): select = Select(driver.find_element_by_id('fkPmsTenderWay')) select.select_by_value('1') driver.find_element_by_xpath( '//*[@id="span_AwardWay_radio"]/label[1]').click() driver.find_element_by_xpath( '//*[@id="span_isMultipleAward_radio"]/label[1]').click() driver.find_element_by_id('sbt_New').click() driver.find_element_by_xpath('//*[@id="yes"]').click()
def fill_buy_info_page(tender_way, file_name): if tender_way == 12: send_keys(by_id('tenderName'), file_name) send_keys(by_id('fkDmsProctrgCode'), '5111') click(by_tag_name('body')) send_keys(by_id('planNo'), '12345') # 本採購案是否屬於建築工程 click(by_xpath('//*[@id="IsBuild"]/td[2]/div[1]/div[1]/label')) select = Select(by_id('fkTpamProperty')) select.select_by_value('1') send_keys(by_id('procurementAmount1'), '100000') wait(2) click(by_xpath("//*[@id='DirectForm']/table/tbody/tr[10]/td[2]/div[1]/div[1]/label")) click(by_xpath('//*[@id="tr_isSensitive"]/td[2]/div[1]/div[1]/label')) click(by_xpath('//*[@id="tr_isAffectSec"]/td[2]/div[1]/div[1]/label')) send_keys( by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[15]/td[2]/div[1]/div[1]/div/div[1]/input'), '100000' ) wait(1) click(by_xpath('//*[@id="tr_budgetIsPdt"]/td[2]/div[1]/div[1]/label')) send_keys( by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[17]/td[2]/div[1]/div[1]/div/div[1]/input'), '100000' ) wait(1) click(by_xpath('//*[@id="tr_estimatedProcIsPdt"]/td[2]/div[1]/div[1]/label')) click(by_xpath('//*[@id="tr_fuRite"]/td[2]/div[1]/label[2]')) wait(1) send_keys( by_id('fuRiteComment'), 'abc \n def \n ghi' ) # 是否受機關補助 => 新增一筆 click(by_xpath('//*[@id="tr_isGrant"]/td[2]/div[1]/div[1]/label')) wait(1) send_keys( by_id('input_orgId_0'), '3' ) send_keys( by_id('tpamOrgAidMoney_0'), '500' ) # 前案採購資訊 => 否 click(by_xpath('//*[@id="tr_isExTender"]/td[2]/div[1]/div[2]/label')) # 下一頁 click(by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/div[3]/a[2]')) elif tender_way == 2: # 標案名稱 send_keys(by_id('tenderName'), file_name) # 標的分類 send_keys(by_id('fkDmsProctrgCode'), '5111') click(by_tag_name('body')) wait(2) # 工程計畫編號 send_keys(by_id('planNo'), '12345') # 以下根據狀況comment # case 1 # 本採購案是否屬於建築工程 => 第一項 click(by_xpath('//*[@id="IsBuild"]/td[2]/div[1]/div[1]/label')) # case 2 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[2]/label')) # # 金額500萬 # send_keys( # by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[2]/div/table/tbody/tr[1]/td[2]/span/div/div[1]/input'), # '5000000' # ) # # 是 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[2]/div/table/tbody/tr[3]/td/div/div/div[1]/label')) # # 否 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[2]/div/table/tbody/tr[4]/td/div/div[2]/div[2]/label')) # # 是 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[2]/div/table/tbody/tr[5]/td/div/div[2]/div[1]/label')) # # 是 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[2]/div/table/tbody/tr[6]/td/div/div[2]/div[1]/label')) # case 3 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[3]/label')) # # 金額500萬 # send_keys( # by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[3]/div/table/tbody/tr[1]/td[2]/span/div/div[1]/input'), # '5000000' # ) # case 4 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[4]/label')) # case 5 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[5]/td[2]/div[1]/div[5]/label')) # 財物採購性質 select = Select(by_xpath('//*[@id="fkTpamProperty"]')) select.select_by_value('1') # 採購金額 send_keys(by_xpath( '/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[8]/td[2]/div[1]/div/div/div/div[1]/input'), '1000000' ) # 辦理方式 # 自辦 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[10]/td[2]/div[1]/div[1]/label')) # 代辦 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[10]/td[2]/div[1]/div[2]/label')) # send_keys( # by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[10]/td[2]/div[1]/div[2]/div/div[2]/div/div/div[1]/input'), # '9.99' # ) # 依據法條 select = Select(by_xpath('//*[@id="fkTpamByLaw"]')) select.select_by_value('28') # 本採購是否屬「具敏感性或國安(含資安)疑慮之業務範疇」採購 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[13]/td[2]/div[1]/div[1]/label')) # 本採購是否屬「涉及國家安全」採購 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[14]/td[2]/div[1]/div[1]/label')) # 預算金額 send_keys( by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[15]/td[2]/div[1]/div[1]/div/div[1]/input'), '50000' ) # 預算金額是否公開 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[16]/td[2]/div[1]/div[1]/label')) # 預計金額 send_keys( by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[18]/td[2]/div[1]/div[1]/div/div[1]/input'), '50000' ) # 預計金額是否公開 click(by_xpath('//*[@id="tr_estimatedProcIsPdt"]/td[2]/div[1]/div[1]/label')) # 後續擴充 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[20]/td[2]/div[1]/label[2]')) send_keys( by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[20]/td[2]/div[1]/div/textarea'), 'AAA\nBBB\nCCC\nDDD' ) # 是否受機關補助 # 是 # click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[21]/td[2]/div[1]/div[1]/label')) # send_keys( # by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[21]/td[2]/div[1]/div[2]/table/tbody/tr[1]/td[2]/div/div/div[1]/input'), # '3' # ) # click(by_tag_name('body')) # send_keys( # by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[21]/td[2]/div[1]/div[2]/table/tbody/tr[2]/td[2]/div/div/div[1]/input'), # '500' # ) # click(by_tag_name('body')) # 否 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[21]/td[2]/div[1]/div[3]/label')) # 本案是否曾以不同案號辦理招標公告且已傳輸其無法決標公告,目前仍未決標 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/table/tbody/tr[22]/td[2]/div[1]/div[2]/label')) # 下一頁 click(by_xpath('/html/body/div[2]/div/div[5]/div[2]/form/div[3]/a[2]')) elif tender_way == 1: try: # 標案名稱 send_keys(by_id('tenderName'), file_name) # 標的分類 send_keys(by_id('fkDmsProctrgCode'), '5111') click(by_tag_name('body')) wait(2) # 工程計畫編號 send_keys(by_id('planNo'), '12345') # 以下根據狀況comment # case 1 # 本採購案是否屬於建築工程 => 第一項 click(by_xpath('//*[@id="IsBuild"]/td[2]/div[1]/label[1]')) # # case 2 # # 本採購案是否屬於建築工程 => 第二項 => 輸入金額5百萬 => 是 => 否 => 是 => 是 # click(get_by_xpath('//*[@id="IsBuild"]/td[2]/div[1]/label[2]')) # # 輸入金額5百萬 # send_keys( # get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/div[1]/table/tbody/tr[1]/td[2]/span/div/div[1]/input'), # '5000000' # ) # # 是 # click( # get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/div[1]/table/tbody/tr[3]/td/div/div/div[1]/label') # ) # # 否 # click( # get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/div[1]/table/tbody/tr[4]/td/div/div[2]/div[2]/label') # ) # # 是 # click( # get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/div[1]/table/tbody/tr[5]/td/div/div[2]/div[1]/label') # ) # # 是 # click( # get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/div[1]/table/tbody/tr[6]/td/div/div[2]/div[1]/label') # ) # # case 3 # # 本採購案是否屬於建築工程 => 第三項 => 輸入金額5百萬 # click(get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/input[3]')) # # 輸入5百萬 # send_keys( # get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/div[2]/table/tbody/tr[1]/td[2]/span/div/div[1]/input'), # '5000000' # ) # # case 4 # # 本採購案是否屬於建築工程 # click(get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/label[3]')) # # case 5 # # 本採購案是否屬於建築工程 # click(get_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[5]/td[2]/div[1]/label[4]')) # 財物採購性質 select = Select(by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[7]/td[2]/div[1]/select')) select.select_by_value('1') # 採購金額 => 輸入5億 send_keys( by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[8]/td[2]/div[1]/div/div/div[1]/input'), '500000000' ) # 根據狀況comment # # 有無已簽准預期使用情形及效益目標 => 有 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[10]/td[2]/div[1]/div[1]/label').click() # 有無已簽准預期使用情形及效益目標 => 無 => 第一項 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[10]/td[2]/div[1]/div[2]/label').click() driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[10]/td[2]/div[1]/span[2]/input[1]').click() # 辦理方式 # 自辦(會loading, 設等待秒數) driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[11]/td[2]/div[1]/div[1]/label').click() driver.implicitly_wait(3) # # 代辦 => 輸入機關 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[11]/td[2]/div[1]/div[2]/label').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[11]/td[2]/div[1]/div[2]/div/div[2]/div/div/div[1]/input').send_keys('9.99') # driver.find_element_by_tag_name('body').click() # driver.implicitly_wait(2) # 依據法條 select = Select(driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[12]/td[2]/div[1]/select')) select.select_by_value('4') # 採購法第18條、第19條 # 是否適用條約或協定之採購 WTO # 是否適用WTO政府採購協定(GPA) # driver.find_element_by_xpath('//*[@id="radio_GPA2_isApplied"]').click() # 是否適用臺紐經濟合作協定(ANZTEC) # driver.find_element_by_xpath('//*[@id="radio_ANZTEC_isApplied"]').click() # 是否適用臺星經濟夥伴協定(ASTEP) # driver.find_element_by_xpath('//*[@id="radio_ASTEP_isApplied"]').click() # 是否採用電子競價 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[14]/td[2]/div[1]/div[2]/label').click() # 本採購是否屬「具敏感性或國安(含資安)疑慮之業務範疇」採購 => 是 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[16]/td[2]/div[2]/div[1]/label').click() # 本採購是否屬「涉及國家安全」採購 => 是 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[17]/td[2]/div[2]/div[1]/label').click() # 預算金額 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[18]/td[2]/div[1]/div[1]/div/div[1]/input').send_keys('500000000') # 預算金額是否公開 # 是 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[19]/td[2]/div[1]/div[1]/label').click() # # 否 => 轉售或供製造、加工後轉售之採購 or 預算金額涉及商業機密 or 機關認為不宜公開 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[19]/td[2]/div[1]/div[2]/label').click() # select = Select(driver.find_element_by_id('budgetNopubReason')) # select.select_by_value('轉售或供製造、加工後轉售之採購') # # select.select_by_value('預算金額涉及商業機密') # # select.select_by_value('機關認為不宜公開') # 預計金額 => 輸入5億 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[20]/td[2]/div[1]/div/div/div[1]/input').send_keys('500000000') # 預計金額是否公開 => 是 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[21]/td[2]/div[1]/div[1]/label').click() # 後續擴充 # 否 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[22]/td[2]/div[1]/div[1]/label').click() # 是 => 輸入說明 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[22]/td[2]/div[1]/div[2]/label').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[22]/td[2]/div[1]/div[3]/textarea').send_keys('測試測試\n測試測試\n測試測試') # 是否受機關補助 # 否 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[23]/td[2]/div[1]/div[3]/label').click() # 是 => 新增一筆 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[23]/td[2]/div[1]/div[1]/label').click() # driver.find_element_by_id('input_orgId_0').send_keys('3') # driver.find_element_by_tag_name('body').click() # driver.find_element_by_id('tpamOrgAidMoney_0').send_keys('50000') # driver.find_element_by_tag_name('body').click() # driver.implicitly_wait(2) # 本案是否曾以不同案號辦理招標公告且已傳輸其無法決標公告,目前仍未決標 # 否 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[24]/td[2]/div[1]/div[2]/label').click() # # 是 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[24]/td[2]/div[1]/div[1]/label').click() # # 前案採購資訊 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[25]/td[2]/div/div[1]/div/div[1]/input').send_keys('9.99') # 前案機關代碼 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div[1]/form/table/tbody/tr[25]/td[2]/div/div[2]/input[1]').send_keys('12345') # 前案標案案號 # 下一頁 driver.find_element_by_xpath('//*[@id="DirectForm"]/div[3]/a[2]').click() except Exception: # 中間有錯, 跳過, 直接下一頁 driver.find_element_by_xpath('//*[@id="DirectForm"]/div[3]/a[2]').click()
def fill_var_page(tender_way): if tender_way == 12: clear(by_xpath('//*[@id="deptCharge1"]')) send_keys(by_xpath('//*[@id="deptCharge1"]'), '0') wait(1) # driver.find_element_by_id('docChargeExpRsn').send_keys('abc \n def \ ghi') # driver.find_element_by_id('dcIdstrName').send_keys('台灣中油股份有限公司') # driver.find_element_by_id('dcOidstrName').send_keys('採購處') # driver.find_element_by_id('bankAccountName').send_keys('台灣中油股份有限公司') click(by_xpath('//*[@id="div_isEsubmitY"]/div[1]/div/label[1]')) click(by_xpath('//*[@id="div_isEsubmitY"]/div[2]/div/label[1]')) # 截止投標日期 send_keys(by_id('waitDay'), '7') click(by_tag_name('body')) date_value = by_id('label_spdtDate').get_attribute('innerHTML') send_keys(by_id('opdtDateInput'), date_value) click(by_tag_name('body')) # is_Deposite_Y click( by_xpath( '//*[@id="DirectForm"]/table/tbody/tr[6]/td[2]/div[1]/div/div[3]/label' )) # driver.find_element_by_id('tenderDepositeY').send_keys('1000') # 投標文字 click( by_xpath( '//*[@id="DirectForm"]/table/tbody/tr[7]/td[2]/div[1]/label[1]' )) # 下一頁 click(by_xpath('/html/body/div[2]/div/div[5]/div[7]/form/div[3]/a[2]')) elif tender_way == 2: # 是否提供電子領標 => 招標文件售價及付款方式 send_keys( by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[1]/td[2]/div[1]/div/div[2]/div[3]/div/div[1]/div[2]/div[2]/div[2]/input' ), '現金') # 是否提供電子投標 click( by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[2]/td[2]/div[1]/div/div[1]/label' )) # 截止投標 => 等標天數 send_keys( by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[3]/td[2]/div[1]/div[1]/input[2]' ), '7') date_value = by_xpath('//*[@id="label_spdtDate"]').get_attribute( 'innerHTML') # 開標時間 send_keys( by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[4]/td[2]/div[1]/div/div[2]/div/div/input[1]' ), date_value) # 是否須繳納押標金 click( by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[6]/td[2]/div[1]/div/div[3]/label' )) # 是否須繳納押標金 click( by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[6]/td[2]/div[1]/div/div[3]/label' )) # 投標文字 click( by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[7]/td[2]/div[1]/label[1]' )) # 下一頁 click(by_xpath('/html/body/div[2]/div/div[5]/div[7]/form/div[3]/a[2]')) elif tender_way == 1: # 是否提供電子領標 => 預設都選是 # 招標文件售價及付款方式 driver.find_element_by_xpath('//*[@id="costPayPhyObtain"]').send_keys( '現金') # 是否提供電子投標 # 是 driver.find_element_by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[2]/td[2]/div[1]/div/div[1]/label' ).click() # 截止投標 # 等待天數 driver.find_element_by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[3]/td[2]/div[1]/div[1]/input[2]' ).send_keys('26') driver.find_element_by_tag_name('body').click() # label_spdtDate date_value = driver.find_element_by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[3]/td[2]/div[1]/div[1]/span/label' ).get_attribute('innerHTML') # 開標時間 driver.find_element_by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[4]/td[2]/div[1]/div/div/div/div/input[1]' ).send_keys(date_value) driver.find_element_by_tag_name('body').click() # 是否須繳納押標金 => 否 driver.find_element_by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[6]/td[2]/div[1]/div/div[3]/label' ).click() # 投標文字 => 正體中文 driver.find_element_by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/table/tbody/tr[7]/td[2]/div[1]/div[1]/label' ).click() # 下一頁 driver.find_element_by_xpath( '/html/body/div[2]/div/div[5]/div[7]/form/div[2]/a[2]').click()
def fill_dep_page(): driver.find_element_by_xpath('//*[@id="telExt"]').clear() driver.find_element_by_xpath('//*[@id="telExt"]').send_keys('1234') driver.find_element_by_xpath('//*[@id="faxCountry"]').clear() driver.find_element_by_xpath('//*[@id="faxCountry"]').send_keys('886') driver.find_element_by_xpath('//*[@id="faxNo"]').clear() driver.find_element_by_xpath('//*[@id="faxNo"]').send_keys('87899033') driver.find_element_by_xpath('//*[@id="DirectForm"]/div[3]/a').click()
def by_xpath(path): return driver.find_element_by_xpath(path)
def fill_info_page(tender_way): if tender_way == 12: click(by_xpath('//*[@id="DirectForm"]/table/tbody/tr[9]/td[2]/div[1]/div[2]/label')) # 是否訂有底價 => 否 => 採購法第47條第1項第1款 click(by_xpath('//*[@id="DirectForm"]/table/tbody/tr[9]/td[2]/div[1]/div[2]/label')) click(by_xpath('//*[@id="div_isGovernmentEstimate"]/div[1]/label')) click(by_xpath('//*[@id="DirectForm"]/table/tbody/tr[18]/td[2]/div[1]/div[2]/label')) # 下一頁 click(by_xpath('/html/body/div[2]/div/div[5]/div/form/div[3]/a[3]')) elif tender_way == 2: # 是否訂有底價 => 否 => 第一項 click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[9]/td[2]/div[1]/div[2]/label')) click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[9]/td[2]/div[1]/div[2]/div/div[1]/label')) # 是否屬特殊採購 click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[17]/td[2]/div[1]/div/div[2]/label')) # 是否屬統包 click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[19]/td[2]/div[3]/div/div[1]/label')) click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[19]/td[2]/div[3]/div/div[1]/div/table/tbody/tr[1]/td[2]/input[1]')) click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[19]/td[2]/div[3]/div/div[1]/div/table/tbody/tr[2]/td[2]/input[1]')) # 本案完成後所應達到之功能、效益、標準、品質或特性(填列摘要情形,限填500個中文字) send_keys( by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[23]/td[2]/div[1]/textarea'), 'AAA\nBBB\nCCC\nDDD' ) # 是否屬二以上機關之聯合採購(不適用共同供應契約規定) click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[25]/td[2]/div[1]/div[2]/label')) # 是否屬國際競圖之採購 => 是 => 是 => 是 click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[27]/td[2]/div[1]/div[1]/label')) click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[27]/td[2]/div[1]/div[1]/div/div/table/tbody/tr[1]/td[2]/input[1]')) click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[27]/td[2]/div[1]/div[1]/div/div/table/tbody/tr[2]/td[2]/input[1]')) # 是否採行協商措施 click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[28]/td[2]/div[1]/div/div[1]/label')) # 是否適用採購法第104條或105條或招標期限標準第10條或第4條之1 # 是 => select選1 click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[29]/td[2]/div[1]/div[1]/label')) select = Select(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/table/tbody/tr[29]/td[2]/div[1]/div[2]/select')) select.select_by_value('6') # 下一頁 click(by_xpath('/html/body/div[2]/div/div[5]/div[3]/form/div[3]/a[2]')) elif tender_way == 1: # 是否訂有底價 # 是 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[9]/td[2]/div[1]/div[1]/label').click() # # 否 => 選第一項: 採購法第47條第1項第1款 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[9]/td[2]/div[1]/div[2]/label').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[9]/td[2]/div[1]/div[3]/p[1]/label').click() # 是否屬特殊採購 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[17]/td[2]/div[1]/div/div[1]/label').click() # 是否已辦理公開閱覽, 預設: 否 # 選select # select = Select(driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[18]/td[2]/div[1]/div[3]/div[2]/select')) # select.select_by_value('政府採購法第22條第1項第3款') # 是否屬統包 # 否 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[19]/td[2]/div[1]/div/div[4]/label').click() # # 是, 1. 2. 都選是 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[19]/td[2]/div[1]/div/div[2]/label').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[19]/td[2]/div[1]/div/div[3]/div[2]/div[2]/label[1]').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[19]/td[2]/div[1]/div/div[3]/div[2]/div[4]/label[1]').click() # 本案完成後所應達到之功能、效益、標準、品質或特性 (填列摘要情形,限填500個中文字) # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[23]/td[2]/div[1]/textarea').send_keys('測試測試\n測試測試\n測試測試') # 是否屬二以上機關之聯合採購(不適用共同供應契約規定) # 是 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[25]/td[2]/div[1]/div[1]/label').click() # 否 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[25]/td[2]/div[1]/div[2]/label').click() # 是否屬國際競圖之採購 # 否 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[27]/td[2]/div[1]/div[3]/label').click() # # 是, 1. 2. 都選是 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[27]/td[2]/div[1]/div[1]/label').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[27]/td[2]/div[1]/div[2]/div[2]/div[2]/label[1]').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[27]/td[2]/div[1]/div[2]/div[2]/div[4]/label[1]').click() # 是否採行協商措施 => 是 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[28]/td[2]/div[1]/div/div[1]/label').click() # 是否適用採購法第104條或105條或招標期限標準第10條或第4條之1 # 否 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[29]/td[2]/div[1]/div[3]/label').click() # # 是 => 2. 公營事業為商業性轉售或用於製造產品、提供服務以供轉售目的所為之採購,基於採購案件之特性或實際需要,有縮短等標期之必要者 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[29]/td[2]/div[1]/div[1]/label').click() # select = Select(driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[29]/td[2]/div[1]/div[2]/select')) # select.select_by_value('2') # 是否依據採購法第106條第1項第1款辦理 # 否 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[30]/td[2]/div[1]/div/div[3]/label').click() # 是 # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[30]/td[2]/div[1]/div/div[1]/label').click() # driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/table/tbody/tr[30]/td[2]/div[1]/div/div[2]/div[1]/input').send_keys('9.99') # 駐在地國別 # driver.find_element_by_xpath('//*[@id="fkForeignNation_chosen"]').click() # driver.find_element_by_xpath('//*[@id="fkForeignNation_chosen"]/a/span').text = '美國(United States of America)' # .send_keys('美國(United States of America)') # driver.find_elements_by_tag_name('body').send_keys(Keys.ENTER) # 下一頁 driver.find_element_by_xpath('/html/body/div[2]/div/div[5]/div/form/div[2]/a[2]').click()
def fill_upload_file_page(tender_way): if tender_way == 1: # 目前先跳過 driver.find_element_by_xpath('//*[@id="Next_page"]').click()