I understand you have problems with test automation because you are not much skilled (yet) in programming. And it hurts.
I believe the more something hurts, the more resistance something offers, the more you need to practice that until the moment things become a routine for you and you become more effective. There are no workarounds and shortcuts to master programming, but there are ways to make it less stressful. Pair with a more senior developer, learn from real Selenium examples, read answers and ask questions on the Internet or participate in a real or virtual training (I really value learning programming the hard way and their courses).
Obviously, test automation is not just programming. If you do not have enough skills (yet) to automate focus on other things you can contribute:
- Design test cases: what scenarios and aspects you want to validate? at what levels? Automation itself can be delegate to a more experienced programmer
- Decide what not to automate and leave for manual testing. For instance, visual consistency is a good candidate for that.
- Test performance and API with tools that require less programming skills. For instance, SOAP UI can help you verify JSON Web services, JMeter will help you test performance. You will not necessarily program, but you will get more familiar with different technologies (HTTP, JSON, etc.) and internal architecture of your application.
- Troubleshoot failing test cases. Even if you are not automating tests, you may help others to find, why the test are failing. Learning when, where and why the system fails will help you in writing better test cases.
Basically, do all other tasks that are part of testing process as: execution of tests, generating test execution reports, integration with test management tool, logging, root cause isolation. You do not have to automate them, but you may find tasks are more repetitive and tedious and ask your colleagues to automate them (see Alan Page's chapter on that and then James Bach's article).