Compare commits
7
Commits
17b0df42d4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
123df61930 | ||
|
|
83a3d9a10c | ||
|
|
7d670eee21 | ||
|
|
b682211d22 | ||
|
|
f8c0f7280e | ||
|
|
c326df934e | ||
|
|
87c2632909 |
@@ -116,7 +116,7 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
driver.execute_script("window.stop();")
|
||||
|
||||
setup(driver, parameters)
|
||||
until(lambda x: 'loginProgress' in x.find_element(By.TAG_NAME, "body").get_attribute('class'), watch=False)
|
||||
until(lambda x: 'loginProgress' in x.find_element(By.TAG_NAME, "body").get_attribute('class'))
|
||||
logger.info('Waiting for authentication...')
|
||||
|
||||
if (account := parameters['account']) and (password := parameters['password']):
|
||||
@@ -181,7 +181,7 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
sleep(parameters['interval'])
|
||||
|
||||
file = Path(parameters['directory']).joinpath(filename)
|
||||
until(lambda _: file.exists(), watch=False)
|
||||
until(lambda _: file.exists())
|
||||
p = ProductInfo(file)
|
||||
driver.close()
|
||||
driver.switch_to.window(driver.window_handles[0])
|
||||
@@ -211,6 +211,11 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
@classmethod
|
||||
def perform(cls):
|
||||
if status == Status.RUNNING:
|
||||
try:
|
||||
if driver.find_elements(By.CSS_SELECTOR, ".okki-spin"):
|
||||
sleep(parameters['interval'])
|
||||
return True
|
||||
except: pass
|
||||
t1.start()
|
||||
return False
|
||||
|
||||
@@ -257,6 +262,7 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
profile = None
|
||||
progress = { 'task': '' }
|
||||
selection = 0
|
||||
errors = set()
|
||||
|
||||
sp.add(pairs=[ (k.lower(), v) for k, v in flow ])
|
||||
sp.set('actions', lambda: flow.capabilities())
|
||||
@@ -275,6 +281,8 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
name = options.pop('profile')
|
||||
profile = next(filter(lambda o: o.name == name, profiles))
|
||||
except (IndexError, KeyError):
|
||||
logger.error('Operation failed:\n\n%s' % ', '.join(errors)) if errors else None
|
||||
errors.clear()
|
||||
logger.info('Done')
|
||||
status = Status.READY
|
||||
continue
|
||||
@@ -326,6 +334,7 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
|
||||
if len(data) == 0:
|
||||
logger.warning('Server returned an empty response')
|
||||
errors.add(profile.name)
|
||||
continue
|
||||
|
||||
logger.info('Initializing Workbook...')
|
||||
@@ -453,6 +462,7 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
|
||||
if sheet.max_row < 2:
|
||||
logger.warning("No data; skipping")
|
||||
errors.add(profile.name)
|
||||
continue
|
||||
|
||||
try:
|
||||
@@ -480,9 +490,9 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
driver.get(WEBURL % 'order/importOrder')
|
||||
|
||||
click(".product-import-img-box .import-img-radio:nth-child(2) .mm-radio-group > label:nth-child(2) .mm-radio-input", condition=None)
|
||||
click(".product-import-img-box .mm-selector-rendered")
|
||||
click(".mm-outside.mm-select-dropdown ul li:nth-child(%d) span" % (1 if options.get('draft') else 6))
|
||||
locate(".big-file-upload input", wait=False).send_keys(str(file))
|
||||
click(".import-order-item .okki-select")
|
||||
click(".okki-select-dropdown .rc-virtual-list-holder-inner > div:nth-child(%d)" % (1 if options.get('draft') else 6))
|
||||
locate(".import-order-item .big-file-upload input", wait=False).send_keys(str(file))
|
||||
click(".product-import-img-footer button")
|
||||
logger.info('Done')
|
||||
except Skip:
|
||||
@@ -512,7 +522,8 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
flow.react(Sleep)
|
||||
|
||||
if ok is None:
|
||||
logger.warning('Nothing to do; skipping')
|
||||
logger.warning('Data import failed completely; skipping')
|
||||
errors.add(profile.name)
|
||||
continue
|
||||
|
||||
click(ok, condition=None)
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user