I see there are a number of options from C# to Ruby to Python to Javascript.
For a newbie to programming which language would you recommend I choose for this situation (webdriver and newbie programmer) ?
I see there are a number of options from C# to Ruby to Python to Javascript.
For a newbie to programming which language would you recommend I choose for this situation (webdriver and newbie programmer) ?
There isn't any particular language that would be best for any framework. The tools and language used depends upon the organization you would work for ,thier policies and thier exposure to that languages or tool.
Looking from a personal growth perspective, the best thing is to start searching for jobs in LinkedIn and other job sites and analyse there job descriptions. Find out which is the most common tool and programming or scripting languages that are in demand.
According to my experiences,
Selenium + c# : is being used in few organisation and there is a limited human resource availability. If you learn it then you could be pretty sure to find a job pretty fast.
Selenium+Java: is the most used . But, even though there are plenty of job opportunities available, there isn't any talent crisis. Most people who start selenium will go with Java and this create high competition.
Python is being used in India as part of QA but in Europe it's more of java.
The best thing to do is to , analysis the job market and find the skills that are in demand, and prepare yourself on that.
Note: The job market and skill demand varies according to your location.
There is no preferred language for Selenium. One of the good things about Selenium is that it is a language agnostic tool, which has allowed it to become popular and a web standard.
I've been using Selenium since 2010 and have created many test automation frameworks. I've built automation frameworks in PHP, Java, C#, JavaScript. I have a computer science background, so it's pretty straight-forward for me to switch languages.
The approach I take in language choice isn't dependent on language popularity or ease of learning. Ease of learning is usually a consideration when QA resources don't have any tech background (computer science education) and/or are forced to learn automation very quickly. Language popularity can be dependent on your geographic location or type of company you want to work for (enterprise or startup).
If you are just looking to learn on your own and have no current job mandates to write test automation, then you may just want to choose a language that piques your interest.
In my opinion and experience, the best approach to language choice in Selenium is to use the language your development team is using. If you are on a Java team, use Selenium in Java. If a C# team, use C#, etc, etc. Java is only the most popular Selenium language since there are a lot more companies using Java, especially enterprise companies. Startups tend to go with Ruby, Python, or JavaScript.
Some reasons to use the same language that the developers use are:
It's hard to recommend without more information. At a high level I would say:
Avoid Ruby (my preferred language btw) due to lack of use generally in the programming community. However if your shop uses ruby on rails for the application, Ruby may be an ideal choice. Ruby UI automation with RSPec and Capybara is also fairly mature if that is an important criteria to you.
Python is similar to Ruby but currently more popular so a good support community exists.
Javascript is a strong contender. The skills there are extremely valuable and will enable you to work with the javascript front end applications that are now very common.
C# is best for working in Microsoft shops where others are coding in C# and the skills are transferable.
Java is similar to C# but not from Microsoft. Personally I find the setup is harder for newbies.
We use Selenium + NodeJs, the downside of javascript is that you have to deal with async/await.