From 5ea5d09b301db860e182a29fe66299f6f27b7137 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Sun, 8 Oct 2023 09:50:15 -0500 Subject: [PATCH] chase: Improve navigation robustness Chase likes to subtly change their website fairly regularly, usually by introducing more ads or changing the location of existing widgets. --- xactfetch.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/xactfetch.py b/xactfetch.py index f25156e..a4d3b7f 100644 --- a/xactfetch.py +++ b/xactfetch.py @@ -579,14 +579,19 @@ class Chase: ) -> Path: log.info('Downloading transactions from %s to %s', from_date, to_date) fmt = '%m/%d/%Y' - self.page.get_by_role( + self.page.locator('#CARD_ACCOUNTS').get_by_role( 'button', name='CREDIT CARD (...2467)' ).first.click() - self.page.get_by_role( - 'button', name='Download Account Activity' - ).click() + fl = self.page.locator('#flyout') + fl.wait_for() + fl.get_by_role('button', name='Pay card', exact=True).wait_for() + fl.get_by_role( + 'button', name='Account activity', exact=True + ).wait_for() + fl.get_by_role('link', name='Show details').wait_for() + fl.get_by_role('button', name='Download Account Activity').click() log.debug('Filling account activity download form') - self.page.get_by_text('Activity', exact=True).click() + self.page.locator('#select-downloadActivityOptionId-label').click() self.page.get_by_text('Choose a date range').nth(1).locator( '../..' ).click()