Taxes With Puppeteer
Danny Guo outlines the steps he took in writing a Nodejs / Puppeteer script to enter data into TurboTax.
I use Betterment for some of my investments. For my 2018 tax return, I wanted to use the free edition of Intuit’s TurboTax Online. For non-retirement account investments, each transaction must be documented in the tax return with Form 8949. I had hundreds of transactions in my account in 2018, and I didn’t want to enter them manually.
Betterment has a TurboTax integration to do this work automatically, but TurboTax doesn’t allow importing investment transactions unless you have the Premier plan or above. I also couldn’t import a TXF file because that feature is only available in the desktop versions of TurboTax. I didn’t want to pay for the Premier plan, in part because of Intuit’s lobbying efforts against a simpler tax filing system and because of their other questionable practices.
This seemed like a great opportunity to try out Puppeteer. It’s a library for controlling Chrome and is developed by the Chrome team.
If you are into Puppeteer automation, as much as I am, it’s a good read. I learned some things like this trick with Promises to click a button after the page finishes loading:
await Promise.all([
page.waitForNavigation(),
page.click('#ius-sign-in-submit-btn')
]);
Or setting the defaultViewport
to null to have it be the same size as the window size.
(async () => {
const browser = await puppeteer.launch({
defaultViewport: null,
headless: false
});
})();
More here - Automating TurboTax Data Entry With Puppeteer
🧇