diff --git a/app.env_example b/app.env_example index aa45408..f8be241 100644 --- a/app.env_example +++ b/app.env_example @@ -1,2 +1,3 @@ HpLogin= HpPass= +Domain= diff --git a/src/HpUpdater.py b/src/HpUpdater.py index 855e866..d70e9d1 100644 --- a/src/HpUpdater.py +++ b/src/HpUpdater.py @@ -9,6 +9,9 @@ from pyvirtualdisplay import Display logger = logging.getLogger(__file__) +class DomainNotFoundError(Exception): + pass + class HpUpdater(): def __init__(self): @@ -26,7 +29,16 @@ class HpUpdater(): logger.debug('updateARecord called') driver.get('https://admin.hostpoint.ch/customer/Domains/Overview') - driver.find_element_by_name('edit_dns').click() + + domainTableRows = driver.find_elements_by_class_name('b-table__body-row') + + for row in domainTableRows: + if os.environ.get('Domain') == row.find_element_by_class_name('domain-name-value').get_attribute('value'): + row.find_element_by_name('edit_dns').click() + logger.debug('domain found') + break + else: + raise DomainNotFoundError(f'Domain {os.environ.get("Domain")} can not be found in domain list.') driver.implicitly_wait(10) @@ -84,7 +96,10 @@ class HpUpdater(): logging.info('Initialized firefox browser..') self._login(driver) - self._updateARecord(driver, ip) + try: + self._updateARecord(driver, ip) + except DomainNotFoundError as e: + logging.error(e) driver.quit() display.stop()