Skip to content

Instantly share code, notes, and snippets.

@cpsoinos
Last active December 20, 2020 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cpsoinos/f4b3567c9225f5c0ad3ac51313e84db0 to your computer and use it in GitHub Desktop.
Save cpsoinos/f4b3567c9225f5c0ad3ac51313e84db0 to your computer and use it in GitHub Desktop.
Toll Account Helpers
---
- :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'
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