fix: setting up button listeners

This commit is contained in:
2026-06-25 14:11:42 +08:00
parent 78e44bef08
commit f773dce315
2 changed files with 26 additions and 14 deletions
+21 -9
View File
@@ -33,6 +33,7 @@ WEBURL = "https://crm.xiaoman.cn/business/export"
APIURL = "https://crm.xiaoman.cn/api/opportunityRead/export"
def main(driver: WebDriver, logger = logging.getLogger('main')):
identity = short()
parameters = vars(args)
http = PoolManager()
sp = ServiceProvider.default()
@@ -63,11 +64,11 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
locate("input#password").send_keys(password)
click("input.agree-checkbox")
click("button.login-btn")
logger.info('Waiting for authentication to complete...')
except Exception as e:
logger.critical('Unable to login to %s', parameters['url'], exc_info=e)
return 3
logger.info('Waiting for authentication to complete...')
while True:
try:
locate("#container", wait=False)
@@ -80,13 +81,22 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
while True:
try:
if buttons := driver.find_elements(By.CSS_SELECTOR, ".export-actions .okki-btn-primary"):
identity = 'EXPORT'
if not (buttons := driver.find_elements(By.CSS_SELECTOR, ".export-actions .okki-btn-primary")): raise ValueError()
for button in buttons: driver.execute_script("arguments[0].addEventListener('click', () => arguments[0].parentElement.setAttribute(arguments[1], '1'));", button, identity)
break
finally:
except:
sleep(1)
try:
verified = False
button = locate(".filter-actions .okki-btn-primary")
driver.execute_script("window.__%s__ = () => arguments[0].click();" % identity, buttons[1])
driver.execute_script("arguments[0].addEventListener('click', __%s__);" % identity, button)
driver.execute_script("__%s__();" % identity)
except Exception as e:
logger.critical("Error while setting up button listeners", exc_info=e)
return 4
while True:
try:
for index in count(0):
@@ -95,16 +105,18 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
raise ValueError()
except StaleElementReferenceException:
logger.critical('Error while listening to button events')
return 4
return 5
except ValueError:
pass
except:
sleep(1)
continue
if not verified:
try:
locate(".safe-verify-dialog:not([style*='display: none']) .mm-modal-content .mm-modal-body input", wait=False).send_keys(parameters['password'])
click(".mm-modal-footer button.okki-btn-primary")
locate(".safe-verify-dialog:not([style*='display: none']) .mm-modal-content .mm-modal-body input").send_keys(parameters['password'])
click(".mm-modal-footer button.okki-btn-primary", wait=False)
verified = True
except:
pass
@@ -128,14 +140,14 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
logger.info('Read %d line(s) total', len(text))
except Exception as e:
logger.critical('Unable to load input data', exc_info=e)
return 5
return 6
try:
file = Path('template.xlsx').resolve()
template = openpyxl.load_workbook(file)
except Exception as e:
logger.critical('Unable to load template excel', exc_info=e)
return 6
return 7
header = next(data, None)
source = template.active
BIN
View File
Binary file not shown.