Maximizing TestComplete to build efficient scripts
Here's my take on that:
Selenium, while good, you have to do EVERYTHING in code... I mean, EVERYTHING. Object identification, building classes, wrapping things for a unit test to include in some testing tool, etc. EVERYTHING.
ObjectIdentifciation -> NameMapping
Classes -> Code units/KWT
Unit tests -> Test items, projects, etc
Reports/Logs -> TestComplete logging
A lot of the stuff you have to do manually in Selenium, TestComplete has built in.
Other advantage: Selenium is web only. So, if you need to mix your tests between Desktop, API, Mobile, and Web, you need multiple tools. TestComplete allows you to do ALL of them in one tool...or incorporate a few other tools into that one tool. That Web Store that I mentioned above? That was half of the pipeline of a ticket transaction. There were reports, fulfillment, access control scanning, etc., done by other application platforms including desktop, kiosk, and mobile. So, TestComplete allowed an all-in-one tool.
Finally... Selenium is open source... which means that if you need support... well, you can hope you find the right guy in the right forum who knows what they're doing. TestComplete has this space and their own dedicated customer service staff.
Again.. my opinion... others may vary but hopefully this helps in your decision processing.