kham, check captcha text is wrong, allow not adjacent seat.
parent
e3e3bb0f53
commit
5a9e7fc873
|
@ -54,7 +54,7 @@ import itertools
|
||||||
import ssl
|
import ssl
|
||||||
ssl._create_default_https_context = ssl._create_unverified_context
|
ssl._create_default_https_context = ssl._create_unverified_context
|
||||||
|
|
||||||
CONST_APP_VERSION = u"MaxBot (2023.05.28)"
|
CONST_APP_VERSION = u"MaxBot (2023.6.6)"
|
||||||
|
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt"
|
CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt"
|
||||||
|
@ -2098,43 +2098,24 @@ def tixcraft_area_auto_select(driver, url, config_dict):
|
||||||
print("find submitSeat fail")
|
print("find submitSeat fail")
|
||||||
'''
|
'''
|
||||||
|
|
||||||
def tixcraft_ticket_agree(driver):
|
def tixcraft_ticket_agree(driver, config_dict):
|
||||||
click_plan = "A"
|
show_debug_message = True # debug.
|
||||||
#click_plan = "B"
|
show_debug_message = False # online
|
||||||
|
|
||||||
# check agree
|
if config_dict["advanced"]["verbose"]:
|
||||||
form_checkbox = None
|
show_debug_message = True
|
||||||
if click_plan == "A":
|
|
||||||
try:
|
|
||||||
form_checkbox = driver.find_element(By.ID, 'TicketForm_agree')
|
|
||||||
except Exception as exc:
|
|
||||||
print("find TicketForm_agree fail")
|
|
||||||
|
|
||||||
is_finish_checkbox_click = False
|
agree_checkbox = None
|
||||||
if form_checkbox is not None:
|
try:
|
||||||
try:
|
my_css_selector = '#TicketForm_agree'
|
||||||
# TODO: check the status: checked.
|
agree_checkbox = driver.find_element(By.CSS_SELECTOR, my_css_selector)
|
||||||
if form_checkbox.is_enabled():
|
except Exception as exc:
|
||||||
if not form_checkbox.is_selected():
|
print("find TicketForm_agree fail")
|
||||||
form_checkbox.click()
|
if show_debug_message:
|
||||||
is_finish_checkbox_click = True
|
|
||||||
except Exception as exc:
|
|
||||||
print("click TicketForm_agree fail")
|
|
||||||
pass
|
|
||||||
|
|
||||||
# 使用 plan B.
|
|
||||||
#if not is_finish_checkbox_click:
|
|
||||||
# alway not use Plan B.
|
|
||||||
if False:
|
|
||||||
try:
|
|
||||||
print("use plan_b to check TicketForm_agree.")
|
|
||||||
driver.execute_script("$(\"input[type='checkbox']\").prop('checked', true);")
|
|
||||||
#driver.execute_script("document.getElementById(\"TicketForm_agree\").checked;")
|
|
||||||
is_finish_checkbox_click = True
|
|
||||||
except Exception as exc:
|
|
||||||
print("javascript check TicketForm_agree fail")
|
|
||||||
print(exc)
|
print(exc)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
is_finish_checkbox_click = force_check_checkbox(driver, agree_checkbox)
|
||||||
|
|
||||||
return is_finish_checkbox_click
|
return is_finish_checkbox_click
|
||||||
|
|
||||||
|
@ -2591,10 +2572,9 @@ def tixcraft_auto_ocr(driver, ocr, away_from_keyboard_enable, previous_answer, C
|
||||||
return is_need_redo_ocr, previous_answer, is_form_sumbited
|
return is_need_redo_ocr, previous_answer, is_form_sumbited
|
||||||
|
|
||||||
def tixcraft_ticket_main_agree(driver, config_dict):
|
def tixcraft_ticket_main_agree(driver, config_dict):
|
||||||
auto_check_agree = config_dict["auto_check_agree"]
|
if config_dict["auto_check_agree"]:
|
||||||
if auto_check_agree:
|
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
is_finish_checkbox_click = tixcraft_ticket_agree(driver)
|
is_finish_checkbox_click = tixcraft_ticket_agree(driver, config_dict)
|
||||||
if is_finish_checkbox_click:
|
if is_finish_checkbox_click:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -3152,51 +3132,29 @@ def kktix_hide_blocks(driver):
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def kktix_check_agree_checkbox(driver):
|
def kktix_check_agree_checkbox(driver, config_dict):
|
||||||
|
show_debug_message = True # debug.
|
||||||
|
show_debug_message = False # online
|
||||||
|
|
||||||
|
if config_dict["advanced"]["verbose"]:
|
||||||
|
show_debug_message = True
|
||||||
|
|
||||||
is_need_refresh = False
|
is_need_refresh = False
|
||||||
is_finish_checkbox_click = False
|
is_finish_checkbox_click = False
|
||||||
|
|
||||||
kktix_hide_blocks(driver)
|
kktix_hide_blocks(driver)
|
||||||
|
|
||||||
person_agree_terms_checkbox = None
|
agree_checkbox = None
|
||||||
try:
|
try:
|
||||||
person_agree_terms_checkbox = driver.find_element(By.ID, 'person_agree_terms')
|
agree_checkbox = driver.find_element(By.ID, 'person_agree_terms')
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
print("find person_agree_terms checkbox Exception")
|
print("find person_agree_terms checkbox Exception")
|
||||||
|
if show_debug_message:
|
||||||
|
print(exc)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if person_agree_terms_checkbox is not None:
|
if agree_checkbox is not None:
|
||||||
is_visible = False
|
is_finish_checkbox_click = force_check_checkbox(driver, agree_checkbox)
|
||||||
try:
|
|
||||||
if person_agree_terms_checkbox.is_enabled():
|
|
||||||
is_visible = True
|
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if is_visible:
|
|
||||||
is_checkbox_checked = False
|
|
||||||
try:
|
|
||||||
if person_agree_terms_checkbox.is_selected():
|
|
||||||
is_checkbox_checked = True
|
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if not is_checkbox_checked:
|
|
||||||
#print('send check to checkbox')
|
|
||||||
try:
|
|
||||||
person_agree_terms_checkbox.click()
|
|
||||||
is_finish_checkbox_click = True
|
|
||||||
except Exception as exc:
|
|
||||||
try:
|
|
||||||
driver.execute_script("arguments[0].click();", person_agree_terms_checkbox)
|
|
||||||
is_finish_checkbox_click = True
|
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
#print('checked')
|
|
||||||
is_finish_checkbox_click = True
|
|
||||||
else:
|
|
||||||
is_need_refresh = True
|
|
||||||
else:
|
else:
|
||||||
is_need_refresh = True
|
is_need_refresh = True
|
||||||
|
|
||||||
|
@ -3205,6 +3163,41 @@ def kktix_check_agree_checkbox(driver):
|
||||||
|
|
||||||
return is_need_refresh, is_finish_checkbox_click
|
return is_need_refresh, is_finish_checkbox_click
|
||||||
|
|
||||||
|
|
||||||
|
def force_check_checkbox(driver, agree_checkbox):
|
||||||
|
is_finish_checkbox_click = False
|
||||||
|
if agree_checkbox is not None:
|
||||||
|
is_visible = False
|
||||||
|
try:
|
||||||
|
if agree_checkbox.is_enabled():
|
||||||
|
is_visible = True
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if is_visible:
|
||||||
|
is_checkbox_checked = False
|
||||||
|
try:
|
||||||
|
if agree_checkbox.is_selected():
|
||||||
|
is_checkbox_checked = True
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if not is_checkbox_checked:
|
||||||
|
#print('send check to checkbox')
|
||||||
|
try:
|
||||||
|
agree_checkbox.click()
|
||||||
|
is_finish_checkbox_click = True
|
||||||
|
except Exception as exc:
|
||||||
|
try:
|
||||||
|
driver.execute_script("arguments[0].click();", agree_checkbox)
|
||||||
|
is_finish_checkbox_click = True
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
is_finish_checkbox_click = True
|
||||||
|
return is_finish_checkbox_click
|
||||||
|
|
||||||
|
|
||||||
def kktix_check_register_status(driver, url):
|
def kktix_check_register_status(driver, url):
|
||||||
#ex: https://xxx.kktix.cc/events/xxx
|
#ex: https://xxx.kktix.cc/events/xxx
|
||||||
prefix_list = ['.com/events/','.cc/events/']
|
prefix_list = ['.com/events/','.cc/events/']
|
||||||
|
@ -3800,9 +3793,8 @@ def kktix_reg_captcha(driver, config_dict, answer_index, is_finish_checkbox_clic
|
||||||
|
|
||||||
# retry check agree checkbox again.
|
# retry check agree checkbox again.
|
||||||
if not is_finish_checkbox_click:
|
if not is_finish_checkbox_click:
|
||||||
auto_check_agree = config_dict["auto_check_agree"]
|
if config_dict["auto_check_agree"]:
|
||||||
if auto_check_agree:
|
is_need_refresh, is_finish_checkbox_click = kktix_check_agree_checkbox(driver, config_dict)
|
||||||
is_need_refresh, is_finish_checkbox_click = kktix_check_agree_checkbox(driver)
|
|
||||||
|
|
||||||
is_do_press_next_button = False
|
is_do_press_next_button = False
|
||||||
auto_press_next_step_button = config_dict["kktix"]["auto_press_next_step_button"]
|
auto_press_next_step_button = config_dict["kktix"]["auto_press_next_step_button"]
|
||||||
|
@ -3928,15 +3920,12 @@ def kktix_reg_new(driver, url, answer_index, kktix_register_status_last, config_
|
||||||
if registerStatus != 'IN_STOCK':
|
if registerStatus != 'IN_STOCK':
|
||||||
is_need_refresh = True
|
is_need_refresh = True
|
||||||
|
|
||||||
auto_check_agree = config_dict["auto_check_agree"]
|
if config_dict["auto_check_agree"]:
|
||||||
if auto_check_agree:
|
|
||||||
if not is_need_refresh:
|
if not is_need_refresh:
|
||||||
is_need_refresh, is_finish_checkbox_click = kktix_check_agree_checkbox(driver)
|
is_need_refresh, is_finish_checkbox_click = kktix_check_agree_checkbox(driver, config_dict)
|
||||||
if not is_need_refresh:
|
if not is_finish_checkbox_click:
|
||||||
if not is_finish_checkbox_click:
|
# retry again.
|
||||||
# retry again.
|
is_need_refresh, is_finish_checkbox_click = kktix_check_agree_checkbox(driver, config_dict)
|
||||||
is_need_refresh, is_finish_checkbox_click = kktix_check_agree_checkbox(driver)
|
|
||||||
#print('check agree_terms_checkbox, is_need_refresh:',is_need_refresh)
|
|
||||||
|
|
||||||
if is_need_refresh:
|
if is_need_refresh:
|
||||||
try:
|
try:
|
||||||
|
@ -3951,8 +3940,7 @@ def kktix_reg_new(driver, url, answer_index, kktix_register_status_last, config_
|
||||||
registerStatus = None
|
registerStatus = None
|
||||||
else:
|
else:
|
||||||
# check is able to buy.
|
# check is able to buy.
|
||||||
auto_fill_ticket_number = config_dict["kktix"]["auto_fill_ticket_number"]
|
if config_dict["kktix"]["auto_fill_ticket_number"]:
|
||||||
if auto_fill_ticket_number:
|
|
||||||
answer_index = kktix_reg_new_main(driver, config_dict, answer_index, is_finish_checkbox_click)
|
answer_index = kktix_reg_new_main(driver, config_dict, answer_index, is_finish_checkbox_click)
|
||||||
|
|
||||||
return answer_index, registerStatus
|
return answer_index, registerStatus
|
||||||
|
@ -5887,15 +5875,13 @@ def ibon_area_auto_select(driver, config_dict, area_keyword_list):
|
||||||
|
|
||||||
return is_need_refresh, is_price_assign_by_bot
|
return is_need_refresh, is_price_assign_by_bot
|
||||||
|
|
||||||
def ibon_uncheck_adjacent_seat(driver, config_dict):
|
def ibon_allow_not_adjacent_seat(driver, config_dict):
|
||||||
show_debug_message = True # debug.
|
show_debug_message = True # debug.
|
||||||
show_debug_message = False # online
|
show_debug_message = False # online
|
||||||
|
|
||||||
if config_dict["advanced"]["verbose"]:
|
if config_dict["advanced"]["verbose"]:
|
||||||
show_debug_message = True
|
show_debug_message = True
|
||||||
|
|
||||||
is_finish_checkbox_click = False
|
|
||||||
|
|
||||||
agree_checkbox = None
|
agree_checkbox = None
|
||||||
try:
|
try:
|
||||||
my_css_selector = 'div.not-consecutive > div.custom-control > span > input[type="checkbox"]'
|
my_css_selector = 'div.not-consecutive > div.custom-control > span > input[type="checkbox"]'
|
||||||
|
@ -5906,35 +5892,7 @@ def ibon_uncheck_adjacent_seat(driver, config_dict):
|
||||||
print(exc)
|
print(exc)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if agree_checkbox is not None:
|
is_finish_checkbox_click = force_check_checkbox(driver, agree_checkbox)
|
||||||
is_visible = False
|
|
||||||
try:
|
|
||||||
if agree_checkbox.is_enabled():
|
|
||||||
is_visible = True
|
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if is_visible:
|
|
||||||
is_checkbox_checked = False
|
|
||||||
try:
|
|
||||||
if agree_checkbox.is_selected():
|
|
||||||
is_checkbox_checked = True
|
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if not is_checkbox_checked:
|
|
||||||
#print('send check to checkbox')
|
|
||||||
try:
|
|
||||||
agree_checkbox.click()
|
|
||||||
is_finish_checkbox_click = True
|
|
||||||
except Exception as exc:
|
|
||||||
try:
|
|
||||||
driver.execute_script("arguments[0].click();", agree_checkbox)
|
|
||||||
is_finish_checkbox_click = True
|
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
is_finish_checkbox_click = True
|
|
||||||
|
|
||||||
return is_finish_checkbox_click
|
return is_finish_checkbox_click
|
||||||
|
|
||||||
|
@ -6523,16 +6481,14 @@ def ticketmaster_captcha(driver, config_dict, ocr, Captcha_Browser, domain_name)
|
||||||
if config_dict["advanced"]["verbose"]:
|
if config_dict["advanced"]["verbose"]:
|
||||||
show_debug_message = True
|
show_debug_message = True
|
||||||
|
|
||||||
auto_check_agree = config_dict["auto_check_agree"]
|
|
||||||
|
|
||||||
away_from_keyboard_enable = config_dict["ocr_captcha"]["force_submit"]
|
away_from_keyboard_enable = config_dict["ocr_captcha"]["force_submit"]
|
||||||
if not config_dict["ocr_captcha"]["enable"]:
|
if not config_dict["ocr_captcha"]["enable"]:
|
||||||
away_from_keyboard_enable = False
|
away_from_keyboard_enable = False
|
||||||
ocr_captcha_image_source = config_dict["ocr_captcha"]["image_source"]
|
ocr_captcha_image_source = config_dict["ocr_captcha"]["image_source"]
|
||||||
|
|
||||||
if auto_check_agree:
|
if config_dict["auto_check_agree"]:
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
is_finish_checkbox_click = tixcraft_ticket_agree(driver)
|
is_finish_checkbox_click = tixcraft_ticket_agree(driver, config_dict)
|
||||||
if is_finish_checkbox_click:
|
if is_finish_checkbox_click:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -7643,7 +7599,7 @@ def ibon_main(driver, url, config_dict, ibon_dict, ocr, Captcha_Browser):
|
||||||
|
|
||||||
if is_do_ibon_performance_with_ticket_number:
|
if is_do_ibon_performance_with_ticket_number:
|
||||||
if config_dict["advanced"]["disable_adjacent_seat"]:
|
if config_dict["advanced"]["disable_adjacent_seat"]:
|
||||||
is_finish_checkbox_click = ibon_uncheck_adjacent_seat(driver, config_dict)
|
is_finish_checkbox_click = ibon_allow_not_adjacent_seat(driver, config_dict)
|
||||||
|
|
||||||
# captcha
|
# captcha
|
||||||
is_cpatcha_sent = False
|
is_cpatcha_sent = False
|
||||||
|
@ -9170,53 +9126,46 @@ def kham_keyin_captcha_code(driver, answer = "", auto_submit = False):
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
is_start_to_input_answer = False
|
||||||
if form_verifyCode is not None:
|
if form_verifyCode is not None:
|
||||||
inputed_value = None
|
if len(answer) > 0:
|
||||||
try:
|
inputed_value = None
|
||||||
inputed_value = form_verifyCode.get_attribute('value')
|
try:
|
||||||
except Exception as exc:
|
inputed_value = form_verifyCode.get_attribute('value')
|
||||||
print("find verify code fail")
|
except Exception as exc:
|
||||||
pass
|
print("find verify code fail")
|
||||||
|
pass
|
||||||
|
|
||||||
if inputed_value is None:
|
if inputed_value is None:
|
||||||
inputed_value = ""
|
inputed_value = ""
|
||||||
|
|
||||||
if inputed_value == "驗證碼":
|
if inputed_value == "驗證碼":
|
||||||
|
try:
|
||||||
|
form_verifyCode.clear()
|
||||||
|
except Exception as exc:
|
||||||
|
print("clear verify code fail")
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if len(inputed_value) > 0:
|
||||||
|
print("captcha text inputed:", inputed_value, "target answer:", answer)
|
||||||
|
is_verifyCode_editing = True
|
||||||
|
else:
|
||||||
|
is_start_to_input_answer = True
|
||||||
|
else:
|
||||||
try:
|
try:
|
||||||
form_verifyCode.clear()
|
form_verifyCode.clear()
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
print("clear verify code fail")
|
print("clear verify code fail")
|
||||||
pass
|
pass
|
||||||
else:
|
|
||||||
if len(inputed_value) > 0:
|
|
||||||
print("captcha text inputed.")
|
|
||||||
form_verifyCode = None
|
|
||||||
is_verifyCode_editing = True
|
|
||||||
|
|
||||||
if form_verifyCode is not None:
|
if is_start_to_input_answer:
|
||||||
if len(answer) > 0:
|
answer=answer.upper()
|
||||||
answer=answer.upper()
|
#print("start to fill answer.")
|
||||||
|
try:
|
||||||
is_visible = False
|
form_verifyCode.clear()
|
||||||
try:
|
form_verifyCode.send_keys(answer)
|
||||||
if form_verifyCode.is_enabled():
|
except Exception as exc:
|
||||||
is_visible = True
|
print("send_keys ocr answer fail:", answer)
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if is_visible:
|
|
||||||
try:
|
|
||||||
form_verifyCode.click()
|
|
||||||
is_verifyCode_editing = True
|
|
||||||
except Exception as exc:
|
|
||||||
pass
|
|
||||||
|
|
||||||
#print("start to fill answer.")
|
|
||||||
try:
|
|
||||||
form_verifyCode.clear()
|
|
||||||
form_verifyCode.send_keys(answer)
|
|
||||||
except Exception as exc:
|
|
||||||
print("send_keys ocr answer fail.")
|
|
||||||
|
|
||||||
return is_verifyCode_editing
|
return is_verifyCode_editing
|
||||||
|
|
||||||
|
@ -9345,6 +9294,54 @@ def kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name):
|
||||||
|
|
||||||
return is_cpatcha_sent
|
return is_cpatcha_sent
|
||||||
|
|
||||||
|
def kham_check_captcha_text_error(driver, config_dict):
|
||||||
|
show_debug_message = True # debug.
|
||||||
|
show_debug_message = False # online
|
||||||
|
|
||||||
|
if config_dict["advanced"]["verbose"]:
|
||||||
|
show_debug_message = True
|
||||||
|
|
||||||
|
is_reset_password_text = False
|
||||||
|
el_message = None
|
||||||
|
try:
|
||||||
|
my_css_selector = 'div.ui-dialog > div#dialog-message.ui-dialog-content'
|
||||||
|
el_message = driver.find_element(By.CSS_SELECTOR, my_css_selector)
|
||||||
|
if not el_message is None:
|
||||||
|
el_message_text = el_message.text
|
||||||
|
if show_debug_message:
|
||||||
|
print("el_message_text", el_message_text)
|
||||||
|
if el_message_text is None:
|
||||||
|
el_message_text = ""
|
||||||
|
if "【驗證碼】輸入錯誤" in el_message_text:
|
||||||
|
is_button_clicked = force_press_button(driver, By.CSS_SELECTOR,'div.ui-dialog-buttonset > button.ui-button')
|
||||||
|
is_reset_password_text = True
|
||||||
|
kham_keyin_captcha_code(driver)
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return is_reset_password_text
|
||||||
|
|
||||||
|
def kham_allow_not_adjacent_seat(driver, config_dict):
|
||||||
|
show_debug_message = True # debug.
|
||||||
|
show_debug_message = False # online
|
||||||
|
|
||||||
|
if config_dict["advanced"]["verbose"]:
|
||||||
|
show_debug_message = True
|
||||||
|
|
||||||
|
agree_checkbox = None
|
||||||
|
try:
|
||||||
|
my_css_selector = 'table.eventTABLE > tbody > tr > td > input[type="checkbox"]'
|
||||||
|
agree_checkbox = driver.find_element(By.CSS_SELECTOR, my_css_selector)
|
||||||
|
except Exception as exc:
|
||||||
|
print("find ibon adjacent_seat checkbox Exception")
|
||||||
|
if show_debug_message:
|
||||||
|
print(exc)
|
||||||
|
pass
|
||||||
|
|
||||||
|
is_finish_checkbox_click = force_check_checkbox(driver, agree_checkbox)
|
||||||
|
|
||||||
|
return is_finish_checkbox_click
|
||||||
|
|
||||||
def kham_main(driver, url, config_dict, ocr, Captcha_Browser):
|
def kham_main(driver, url, config_dict, ocr, Captcha_Browser):
|
||||||
show_debug_message = True # debug.
|
show_debug_message = True # debug.
|
||||||
show_debug_message = False # online
|
show_debug_message = False # online
|
||||||
|
@ -9392,40 +9389,57 @@ def kham_main(driver, url, config_dict, ocr, Captcha_Browser):
|
||||||
|
|
||||||
# https://kham.com.tw/application/UTK02/UTK0204_.aspx?PERFORMANCE_ID=N28UQPA1&PRODUCT_ID=N28TFATD
|
# https://kham.com.tw/application/UTK02/UTK0204_.aspx?PERFORMANCE_ID=N28UQPA1&PRODUCT_ID=N28TFATD
|
||||||
if '.aspx?performance_id=' in url.lower() and 'product_id=' in url.lower():
|
if '.aspx?performance_id=' in url.lower() and 'product_id=' in url.lower():
|
||||||
|
domain_name = url.split('/')[2]
|
||||||
|
model_name = url.split('/')[5]
|
||||||
|
if len(model_name) > 7:
|
||||||
|
model_name=model_name[:7]
|
||||||
|
captcha_url = '/pic.aspx?TYPE=%s' % (model_name)
|
||||||
|
#PS: need set cookies once, if user change domain.
|
||||||
|
if not Captcha_Browser is None:
|
||||||
|
Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url)
|
||||||
|
|
||||||
|
if config_dict["ocr_captcha"]["enable"]:
|
||||||
|
is_reset_password_text = kham_check_captcha_text_error(driver, config_dict)
|
||||||
|
if is_reset_password_text:
|
||||||
|
is_captcha_sent = kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name)
|
||||||
|
|
||||||
is_button_clicked = force_press_button(driver, By.CSS_SELECTOR,'div.ui-dialog-buttonset > button.ui-button')
|
is_button_clicked = force_press_button(driver, By.CSS_SELECTOR,'div.ui-dialog-buttonset > button.ui-button')
|
||||||
if config_dict["area_auto_select"]["enable"]:
|
if config_dict["area_auto_select"]["enable"]:
|
||||||
domain_name = url.split('/')[2]
|
|
||||||
model_name = url.split('/')[5]
|
|
||||||
if len(model_name) > 7:
|
|
||||||
model_name=model_name[:7]
|
|
||||||
captcha_url = '/pic.aspx?TYPE=%s' % (model_name)
|
|
||||||
#PS: need set cookies once, if user change domain.
|
|
||||||
if not Captcha_Browser is None:
|
|
||||||
Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url)
|
|
||||||
|
|
||||||
is_switch_to_auto_seat = kham_choice_auto_seat(driver)
|
is_switch_to_auto_seat = kham_choice_auto_seat(driver)
|
||||||
is_price_assign_by_bot = kham_performance(driver, config_dict, ocr, Captcha_Browser, domain_name, model_name)
|
is_price_assign_by_bot = kham_performance(driver, config_dict, ocr, Captcha_Browser, domain_name, model_name)
|
||||||
|
|
||||||
#https://kham.com.tw/application/UTK02/UTK0205_.aspx?PERFORMANCE_ID=XXX&GROUP_ID=30&PERFORMANCE_PRICE_AREA_ID=XXX
|
#https://kham.com.tw/application/UTK02/UTK0205_.aspx?PERFORMANCE_ID=XXX&GROUP_ID=30&PERFORMANCE_PRICE_AREA_ID=XXX
|
||||||
if '.aspx?performance_id=' in url.lower() and 'performance_price_area_id=' in url.lower():
|
if '.aspx?performance_id=' in url.lower() and 'performance_price_area_id=' in url.lower():
|
||||||
|
domain_name = url.split('/')[2]
|
||||||
|
model_name = url.split('/')[5]
|
||||||
|
if len(model_name) > 7:
|
||||||
|
model_name=model_name[:7]
|
||||||
|
captcha_url = '/pic.aspx?TYPE=%s' % (model_name)
|
||||||
|
#PS: need set cookies once, if user change domain.
|
||||||
|
if not Captcha_Browser is None:
|
||||||
|
Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url)
|
||||||
|
|
||||||
|
is_captcha_sent = False
|
||||||
|
if config_dict["ocr_captcha"]["enable"]:
|
||||||
|
is_reset_password_text = kham_check_captcha_text_error(driver, config_dict)
|
||||||
|
if is_reset_password_text:
|
||||||
|
is_captcha_sent = kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name)
|
||||||
|
|
||||||
|
if config_dict["advanced"]["disable_adjacent_seat"]:
|
||||||
|
is_finish_checkbox_click = kham_allow_not_adjacent_seat(driver, config_dict)
|
||||||
|
|
||||||
|
|
||||||
is_button_clicked = force_press_button(driver, By.CSS_SELECTOR,'div.ui-dialog-buttonset > button.ui-button')
|
is_button_clicked = force_press_button(driver, By.CSS_SELECTOR,'div.ui-dialog-buttonset > button.ui-button')
|
||||||
if config_dict["ocr_captcha"]["enable"]:
|
if config_dict["ocr_captcha"]["enable"]:
|
||||||
domain_name = url.split('/')[2]
|
if not is_captcha_sent:
|
||||||
model_name = url.split('/')[5]
|
is_captcha_sent = kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name)
|
||||||
if len(model_name) > 7:
|
|
||||||
model_name=model_name[:7]
|
|
||||||
captcha_url = '/pic.aspx?TYPE=%s' % (model_name)
|
|
||||||
#PS: need set cookies once, if user change domain.
|
|
||||||
if not Captcha_Browser is None:
|
|
||||||
Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url)
|
|
||||||
|
|
||||||
is_ticket_number_assigned = kham_performance_ticket_number(driver, config_dict)
|
is_ticket_number_assigned = kham_performance_ticket_number(driver, config_dict)
|
||||||
if is_ticket_number_assigned:
|
if is_ticket_number_assigned:
|
||||||
is_captcha_sent = kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name)
|
|
||||||
if is_captcha_sent:
|
if is_captcha_sent:
|
||||||
el_btn = None
|
el_btn = None
|
||||||
|
my_css_selector = 'button[onclick="addShoppingCart();return false;"]'
|
||||||
try:
|
try:
|
||||||
my_css_selector = 'button[onclick="addShoppingCart();return false;"]'
|
|
||||||
el_btn = driver.find_element(By.CSS_SELECTOR, my_css_selector)
|
el_btn = driver.find_element(By.CSS_SELECTOR, my_css_selector)
|
||||||
if not el_btn is None:
|
if not el_btn is None:
|
||||||
el_btn.click()
|
el_btn.click()
|
||||||
|
|
Loading…
Reference in New Issue