diff --git a/run.py b/run.py index ca6d4439758328f797fe98f9a783d7fb7ece0193..4b4f826730ee82d4f32fa35769359fbd2e7ea9ac 100755 --- a/run.py +++ b/run.py @@ -4,12 +4,18 @@ from selenium.webdriver.common.keys import Keys import time import config -def wait_for_element(element_txt): +def wait_for_element_txt(element_txt): print('Waiting for loading.', end='', flush=True) while driver.find_elements_by_link_text(element_txt) == []: print('.', end='', flush=True) time.sleep(0.2) print() +def wait_for_element_class(element_class_name): + print('Waiting for loading.', end='', flush=True) + while driver.find_elements_by_class_name(element_class_name) == []: + print('.', end='', flush=True) + time.sleep(0.2) + print() driver = webdriver.Firefox() driver.get("https://yqtb.hust.edu.cn/infoplus/form/BKS/start") @@ -23,11 +29,11 @@ elem.clear() elem.send_keys(config.password) driver.find_element_by_id('index_login_btn').click() -wait_for_element('ä¸‹ä¸€æ¥ Next step') +wait_for_element_txt('ä¸‹ä¸€æ¥ Next step') assert driver.find_element_by_id('V1_CTRL154').is_selected() # Submit for myself driver.find_element_by_link_text('ä¸‹ä¸€æ¥ Next step').click() -wait_for_element('æäº¤ Submit') +wait_for_element_txt('æäº¤ Submit') # I will leave all info as-is. driver.find_element_by_id('V1_CTRL164').send_keys('36.1') driver.find_element_by_id('V1_CTRL104').click() @@ -43,14 +49,17 @@ except: pass driver.find_element_by_link_text('æäº¤ Submit').click() # Fucking dynamic id -# Another confirmation. This is a dangerous code. -driver.find_element_by_class_name('default').click() +wait_for_element_class('dialog_button') +driver.find_element_by_class_name('dialog_button').click() # first one is 'Ok', second one is 'Cancel'. +wait_for_element_class('dialog_content') while 'If you have anything to comment,please click here, or you can add reviews in the form.' == driver.find_element_by_class_name('dialog_content').text: - time.sleep(0.2) + wait_for_element_class('dialog_content') result = driver.find_element_by_class_name('dialog_content').text print(result) +driver.find_element_by_class_name('dialog_button').click() # Unnecessary. + if result == 'Done successfully!': driver.close() else: