Last active
December 20, 2020 16:37
-
-
Save cpsoinos/f4b3567c9225f5c0ad3ac51313e84db0 to your computer and use it in GitHub Desktop.
Toll Account Helpers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- :name: Bay Area FasTrak | |
:slug: fastrak | |
:login_url: https://www.bayareafastrak.org/en/home/index.shtml#signIn | |
:transactions_url: https://www.bayareafastrak.org/vector/account/transactions/batatransactionSearch.do | |
:login_type_radio_selector: | |
:login_username_selector: '#tt_username1' | |
:login_password_selector: '#tt_loginPassword1' | |
:login_button_selector: 'button[name="btnLogin"]' | |
:validate_login_success_selector: 'a[title="Transactions"]' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: '.alert.alert-danger.error_msg' | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/bay-area-fastrak-logo.png" | |
:time_zone: 'America/Los_Angeles' | |
- :name: E-PASS (Central Florida Expressway Authority) | |
:slug: e_pass_fl | |
:login_url: https://epass.cfxway.com/EpassWeb/Account/Login?ReturnUrl=%2FEpassWeb%2FManage | |
:transactions_url: https://epass.cfxway.com/EpassWeb/Manage | |
:login_type_radio_selector: | |
:login_username_selector: '#LoginModel_UserName' | |
:login_password_selector: '#LoginModel_Password' | |
:login_button_selector: '#loginButton' | |
:validate_login_success_selector: '.BalanceText' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/EPASS-logo.svg" | |
:time_zone: 'America/New_York' | |
- :name: ExpressToll (CO) | |
:slug: expresstoll | |
:login_url: https://www.expresstoll.com/Login | |
:transactions_url: | |
:login_type_radio_selector: | |
:login_username_selector: | |
:login_password_selector: | |
:login_button_selector: | |
:validate_login_success_selector: | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/expresstoll-logo.png" | |
:time_zone: | |
- :name: E-ZPass MA (EZDriveMA) | |
:slug: ma_ezpass | |
:login_url: https://www.ezdrivema.com/ezpassmalogin | |
:transactions_url: 'https://www.ezdrivema.com/ezpassviewtransactions' | |
:login_type_radio_selector: | |
:login_username_selector: '#dnn_ctr689_View_txtUserName' | |
:login_password_selector: '#dnn_ctr689_View_txtPassword' | |
:login_button_selector: '#btnLogin' | |
:validate_login_success_selector: '#dnn_ctr670_ModuleContent' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/e-zpass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: E-ZPass MD | |
:slug: md_ezpass | |
:login_url: https://www.ezpassmd.com/vector/account/home/accountLogin.do?locale=en_US | |
:transactions_url: 'https://www.ezpassmd.com/vector/account/transactions/transactionSearch.do' | |
:login_type_radio_selector: 'input[type=radio][value=username]' | |
:login_username_selector: "input[name='login']" | |
:login_password_selector: "input[name='password']" | |
:login_button_selector: '#btnLogin' | |
:validate_login_success_selector: 'a[title="Transactions"]' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: 'span img[src="jcaptcha.do"]' | |
:captcha_field_selector: "input[name='jcaptcha_response']" | |
:logo: "/img/logo_md-small.jpg" | |
:time_zone: 'America/New_York' | |
- :name: E-ZPass ME | |
:slug: me_ezpass | |
:login_url: https://ezpassmaineturnpike.com/EZPass/Login.do | |
:transactions_url: 'https://ezpassmaineturnpike.com/EZPass/PostedTolls.do' | |
:login_type_radio_selector: | |
:login_username_selector: '#username' | |
:login_password_selector: '#password' | |
:login_button_selector: '#submit' | |
:validate_login_success_selector: '#loggedIn' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/e-zpass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: E-ZPass NJ | |
:slug: nj_ezpass | |
:login_url: https://www.ezpassnj.com/vector/account/home/accountLogin.do | |
:transactions_url: https://www.ezpassnj.com/vector/account/transactions/batatransactionSearch.do | |
:login_type_radio_selector: | |
:login_username_selector: '#tt_username1' | |
:login_password_selector: '#tt_loginPassword1' | |
:login_button_selector: 'button.btnbt.btn-lg.btnbt-default.btn-block[type="submit"]' | |
:validate_login_success_selector: '#spinner' | |
:validate_login_success_selector_options: | |
:hidden: true | |
:alert_modal_selector: | |
:captcha_selector: 'div.has-feedback .imgcap' | |
:captcha_field_selector: '#jcaptcha_response1' | |
:logo: "/img/e-zpass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: E-ZPass PA | |
:slug: pa_ezpass | |
:login_url: https://www.ezpass.csc.paturnpike.com/PovEntryPages/Main.aspx | |
:transactions_url: 'https://www.ezpass.csc.paturnpike.com/PovAccountManagement/Transactions.aspx' | |
:login_type_radio_selector: | |
:login_username_selector: '#ctl00_ContentPlaceHolder_UserNameTextBox' | |
:login_password_selector: '#ctl00_ContentPlaceHolder_PasswordTextBox' | |
:login_button_selector: '#ctl00_ContentPlaceHolder_lbLogin' | |
:validate_login_success_selector: '#ctl00_mnuEntryn13 > td > table > tbody > tr > td > a' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/e-zpass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: E-ZPass NY | |
:slug: ny_ezpass | |
:login_url: https://www.e-zpassny.com/vector/account/home/accountLogin.do | |
:transactions_url: 'https://www.e-zpassny.com/vector/account/transactions/transactionSearch.do' | |
:login_type_radio_selector: | |
:login_username_selector: 'input[name="login"]' | |
:login_password_selector: 'input[name="password"]' | |
:login_button_selector: '#btnLogin' | |
:validate_login_success_selector: 'a[title="Transactions"]' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/e-zpass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: E-ZPass RI | |
:slug: ri_ezpass | |
:login_url: https://www.ezpassritba.com/Login/Login | |
:transactions_url: | |
:login_type_radio_selector: | |
:login_username_selector: | |
:login_password_selector: | |
:login_button_selector: | |
:validate_login_success_selector: | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/e-zpass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: E-ZPass VA (VDOT) | |
:slug: va_ezpass | |
:login_url: https://myaccount.ezpassva.com/Home/Login | |
:transactions_url: 'https://myaccount.ezpassva.com/' | |
:login_type_radio_selector: | |
:login_username_selector: '#UserName' | |
:login_password_selector: '#Password' | |
:login_button_selector: 'input[type="submit"]' | |
:validate_login_success_selector: 'a[href="/Home/Login"]' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/e-zpass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: Getaround Autotoll™ | |
:slug: getaround_autotoll | |
:login_url: https://help.getaround.com/hc/en-us/articles/205090994-What-is-Getaround-s-automatic-toll-feature-and-how-do-I-use-it- | |
:transactions_url: | |
:login_type_radio_selector: | |
:login_username_selector: | |
:login_password_selector: | |
:login_button_selector: | |
:validate_login_success_selector: | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/getaround-icon.png" | |
:time_zone: | |
- :name: HCTRA EZ TAG | |
:slug: hctra | |
:login_url: https://www.hctra.org/Login | |
:transactions_url: 'https://www.hctra.org/AccountActivity' | |
:login_type_radio_selector: | |
:login_username_selector: '#username' | |
:login_password_selector: '#password' | |
:login_button_selector: '#submitWrapper button[type="submit"]' | |
:validate_login_success_selector: '#account-overview > div > div > transactions-section > header > span > a' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/hctra-logo.png" | |
:time_zone: 'America/Chicago' | |
- :name: I-Pass (Illinois Tollway) | |
:slug: ipass | |
:login_url: https://www.getipass.com/web/guest/home | |
:transactions_url: 'https://www.getipass.com/activity' | |
:login_type_radio_selector: | |
:login_username_selector: '#login__com_lifegin_web_portlet_LoginPortlet_usernameFromP' | |
:password_field_selector: '#_com_liferay_login_web_portlet_LoginPortlet_password' | |
:login_button_selector: '#_com_liferay_login_web_portlet_LoginPortlet_login' | |
:validate_login_success_selector: 'a[title="View Activity"]' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/I-Pass_(logo).png" | |
:time_zone: 'America/Chicago' | |
- :name: K-Tag (KS) | |
:slug: myktag | |
:login_url: https://www.myktag.com/login | |
:transactions_url: 'https://www.myktag.com/account/toll-activity' | |
:login_type_radio_selector: | |
:login_username_selector: '#username' | |
:login_password_selector: '#password' | |
:login_button_selector: 'button[name="submit"]' | |
:validate_login_success_selector: '.m-account-welcome' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/k-tag-logo.png" | |
:time_zone: 'America/Chicago' | |
- :name: Metro Expresslanes | |
:slug: metro_expresslanes | |
:login_url: https://lametrobos.metroexpresslanes.net/#/Login | |
:transactions_url: 'https://lametrobos.metroexpresslanes.net/Home/AppMaster/#/MaintainAccount/AccountTransaction' | |
:login_type_radio_selector: | |
:login_username_selector: '#input_2' | |
:login_password_selector: '#input_3' | |
:login_button_selector: 'button.md-raised:nth-child(1)' | |
:validate_login_success_selector: '.header-title' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/metro-expresslanes-fastrak-logo.jpg" | |
:time_zone: 'America/Los_Angeles' | |
:base_url: 'https://lametrobos.metroexpresslanes.net/external' | |
:client_id: 'AMSExternalngAuthApp' | |
:grant_type: password | |
- :name: NC Quick Pass | |
:slug: nc_ezpass | |
:login_url: https://www.myncquickpass.com/vector/account/home/accountLogin.do | |
:transactions_url: 'https://www.myncquickpass.com/vector/account/transactions/transactionSearch.do' | |
:login_type_radio_selector: | |
:login_username_selector: 'input[name="login"]' | |
:login_password_selector: 'input[name="password"]' | |
:login_button_selector: '#btnLogin' | |
:validate_login_success_selector: 'a[title="Transactions"]' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: 'span img[src="jcaptcha.do"]' | |
:captcha_field_selector: 'input[name="jcaptcha_response"]' | |
:logo: "/img/nc-quickpass-logo.png" | |
:time_zone: 'America/New_York' | |
- :name: NTTA (North Texas Tollway Authority) | |
:slug: ntta | |
:login_url: https://csc.ntta.org/olcsc/ | |
:transactions_url: 'https://csc.ntta.org/olcsc/updateTabMenu.do' | |
:login_type_radio_selector: | |
:login_username_selector: 'input[name="userName"]' | |
:login_password_selector: 'input[name="password"]' | |
:login_button_selector: '#loginButton' | |
:validate_login_success_selector: '#page-title' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:search_start_date_selector: 'input[name="startDate"]' | |
:search_end_date_selector: 'input[name="endDate"]' | |
:search_button_selector: '#displayButton' | |
:validate_search_success_selector: '#record' | |
:logo: "/img/ntta-logo.jpg" | |
:time_zone: 'America/Chicago' | |
- :name: Peach Pass (GA) | |
:slug: peach_pass | |
:login_url: https://www.mypeachpass.com/user/login | |
:transactions_url: 'https://www.mypeachpass.com/olcsc/DisplayTransactions.do' | |
:login_type_radio_selector: | |
:login_username_selector: '#userName' | |
:login_password_selector: '#password' | |
:login_button_selector: 'form[name="UserForm"] button[type="submit"].login' | |
:validate_login_success_selector: '#lastTollTransaction' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/peach-pass-logo.jpg" | |
:time_zone: 'America/New_York' | |
- :name: PikePass (OK) | |
:slug: pikepass | |
:login_url: https://www.pikepass.com/PPO/ | |
:transactions_url: | |
:login_type_radio_selector: | |
:login_username_selector: | |
:login_password_selector: | |
:login_button_selector: | |
:validate_login_success_selector: | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/oklahoma-pike-pass-logo.png" | |
:time_zone: | |
- :name: SunPass | |
:slug: sunpass | |
:login_url: https://www.sunpass.com/vector/account/home/accountLogin.do | |
:transactions_url: 'https://www.sunpass.com/vector/account/transactions/webtransactionSearch.do' | |
:login_type_radio_selector: | |
:login_username_selector: '#tt_username1' | |
:login_password_selector: '#tt_loginPassword1' | |
:login_button_selector: 'button.btnbt.btn-lg.btnbt-default.btn-block.btn-system.btn-large[name="btnLogin"]' | |
:validate_login_success_selector: '#tolltx' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:login_error_selector: '.alert.alert-danger.error_msg' | |
:logo: "/img/sunpass-logo.png" | |
:time_zone: 'America/New_York' | |
- :name: The Toll Roads of Orange County | |
:slug: the_toll_roads | |
:login_url: https://secure.thetollroads.com/customer/ | |
:transactions_url: 'https://secure.thetollroads.com/customer/transaction.do?cmd=goto' | |
:login_type_radio_selector: | |
:login_username_selector: '#accountNum' | |
:login_password_selector: '#password' | |
:login_button_selector: '#btn-submit' | |
:validate_login_success_selector: '.acct-num' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/the-toll-roads-logo.png" | |
:time_zone: 'America/Los_Angeles' | |
- :name: TxTag | |
:slug: txtag | |
:login_url: https://www.txtag.org/vector/account/home/accountLogin.do | |
:transactions_url: 'https://www.txtag.org/vector/account/transactions/transactionSearch.do' | |
:login_type_radio_selector: | |
:login_username_selector: '#login' | |
:login_password_selector: '#password' | |
:login_button_selector: '#btnLogin' | |
:validate_login_success_selector: 'a[title="Transactions"]' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: 'span img[src="jcaptcha.do"]' | |
:captcha_field_selector: '#jcaptcha_response' | |
:logo: "/img/TxTag-logo.png" | |
:time_zone: 'America/Chicago' | |
- :name: WSDOT Good to Go! | |
:slug: good_to_go | |
:login_url: https://mygoodtogo.com/olcsc/ | |
:transactions_url: 'https://mygoodtogo.com/olcsc/#!accountHistoryView' | |
:login_type_radio_selector: | |
:login_username_selector: '#gwt-uid-9' | |
:login_password_selector: '#gwt-uid-11' | |
:login_button_selector: '#managerYourAccount > div.v-panel-content.v-panel-content-margin10pxpanel.v-scrollable > div > div > div > div > div > div.v-slot.v-slot-buttonHomPage > div' | |
:validate_login_success_selector: '#myAccountHeader > div > div.rl-row.v-layout.v-widget.margin.rl-row-margin.rl-bottom-xs.rl-row-rl-bottom-xs.rl-center-xs.rl-row-rl-center-xs > div > div > div > div > div > div:nth-child(2)' | |
:validate_login_success_selector_options: | |
:validate_login_failure_selector: | |
:alert_modal_selector: | |
:captcha_selector: | |
:captcha_field_selector: | |
:logo: "/img/wsdot-logo.jpg" | |
:time_zone: 'America/Los_Angeles' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const useFindLoginFields = (document: Document) => { | |
const findPasswordField = () => { | |
return document.querySelector('input[type="password"]') | |
} | |
const labelPool = ['username', 'email', 'login', 'account'] | |
const findUsernameField = () => { | |
const passwordField = findPasswordField() | |
if (!passwordField) return null | |
// Find text fields in the enclosing form element | |
const textFields = Array.from( | |
passwordField.closest('form')?.querySelectorAll('input[type="text"]') || | |
document.querySelectorAll('input[type="text"]') | |
) | |
return ( | |
textFields.find((el) => { | |
// Find field with attribute 'name' that matches a login label | |
if ( | |
labelPool.find((label) => { | |
return el.getAttribute('name')?.toLocaleLowerCase().match(label) | |
}) | |
) { | |
return el | |
} | |
// Find a label element matching a login label | |
const label = Array.from(document.querySelectorAll('label')).find( | |
(label) => { | |
if (!label.textContent) return false | |
return labelPool.includes( | |
label.textContent?.toLocaleLowerCase().replace(':', '') | |
) | |
} | |
) | |
// If we find a label element, find the input it's for | |
return label | |
? label.getAttribute('for') === el.getAttribute('id') | |
: !!labelPool.find( | |
(label) => | |
el.getAttribute('title')?.toLocaleLowerCase().match(label) || | |
el.getAttribute('name')?.toLocaleLowerCase().match(label) | |
) | |
}) || textFields[0] | |
) | |
} | |
const usernameField = findUsernameField() | |
const passwordField = findPasswordField() | |
return { | |
usernameField, | |
passwordField, | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment